tree bcc70c01b9dcd2894777ca67b7c10af77321f253
parent d5f414c2ef641ed2e6720cc5af243532c22d5264
parent 52b3ec1a6a8419b869906f708f97865747783a2d
author Matthias Benkard <code@mulk.eu> 1703872632 +0000
committer Matthias Benkard <code@mulk.eu> 1703872632 +0000

chore(deps): update all non-major dependencies (mulk/mulkcms2!49)

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flow-bin](https://github.com/flowtype/flow-bin) ([changelog](https://github.com/facebook/flow/blob/master/Changelog.md)) | devDependencies | minor | [`^0.224.0` -> `^0.225.0`](https://renovatebot.com/diffs/npm/flow-bin/0.224.0/0.225.1) |
| [org.liquibase.ext:liquibase-hibernate5](https://github.com/liquibase/liquibase-hibernate/wiki) ([source](https://github.com/liquibase/liquibase-hibernate)) | build | patch | `4.25.0` -> `4.25.1` |
| [org.liquibase:liquibase-maven-plugin](http://www.liquibase.org/liquibase-maven-plugin) ([source](https://github.com/liquibase/liquibase)) | build | patch | `4.25.0` -> `4.25.1` |
| [org.jsoup:jsoup](https://jsoup.org/) ([source](https://github.com/jhy/jsoup)) | compile | patch | `1.17.1` -> `1.17.2` |
| [io.hypersistence:hypersistence-utils-hibernate-62](https://github.com/vladmihalcea/hypersistence-utils) | compile | minor | `3.6.1` -> `3.7.0` |
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | patch | `3.6.3` -> `3.6.4` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | patch | `3.6.3` -> `3.6.4` |
| [org.apache.maven.plugins:maven-compiler-plugin](https://maven.apache.org/plugins/) | build | minor | `3.11.0` -> `3.12.1` |

---

### Release Notes

<details>
<summary>flowtype/flow-bin</summary>

### [`v0.225.1`](https://github.com/flowtype/flow-bin/compare/62a43fbb44f69bde481588375e77dc39825e3bf8...23ec6163cf6921d4ef74da53e1aaf4a35f798384)

[Compare Source](https://github.com/flowtype/flow-bin/compare/62a43fbb44f69bde481588375e77dc39825e3bf8...23ec6163cf6921d4ef74da53e1aaf4a35f798384)

### [`v0.225.0`](https://github.com/flowtype/flow-bin/compare/e6104a1b4f45dcc4ada4dab57f2dea0a89caec86...62a43fbb44f69bde481588375e77dc39825e3bf8)

[Compare Source](https://github.com/flowtype/flow-bin/compare/e6104a1b4f45dcc4ada4dab57f2dea0a89caec86...62a43fbb44f69bde481588375e77dc39825e3bf8)

</details>

<details>
<summary>liquibase/liquibase</summary>

### [`v4.25.1`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4251-is-a-patch-release)

[Compare Source](https://github.com/liquibase/liquibase/compare/v4.25.0...v4.25.1)

</details>

<details>
<summary>jhy/jsoup</summary>

### [`v1.17.2`](https://github.com/jhy/jsoup/blob/HEAD/CHANGES.md#&#8203;1172-2023-Dec-29)

##### Improvements

-   **Attribute object accessors**: Added `Element.attribute(String)` and `Attributes.attribute(String)` to more simply
    obtain an `Attribute` object. [2069](https://github.com/jhy/jsoup/issues/2069)
-   **Attribute source tracking**: If source tracking is on, and an Attribute's key is changed (
    via `Attribute.setKey(String)`), the source range is now still tracked
    in `Attribute.sourceRange()`. [2070](https://github.com/jhy/jsoup/issues/2070)
-   **Wildcard attribute selector**: Added support for the `[*]` element with any attribute selector. And also restored
    support for selecting by an empty attribute name prefix (`[^]`). [2079](https://github.com/jhy/jsoup/issues/2079)

##### Bug Fixes

-   **Mixed-cased source position**: When tracking the source position of attributes, if the source attribute name was
    mix-cased but the parser was lower-case normalizing attribute names, the source position for that attribute was not
    tracked correctly. [2067](https://github.com/jhy/jsoup/issues/2067)
-   **Source position NPE**: When tracking the source position of a body fragment parse, a null pointer
    exception was thrown. [2068](https://github.com/jhy/jsoup/issues/2068)
-   **Multi-point emoji entity**: A multi-point encoded emoji entity may be incorrectly decoded to the replacement
    character. [2074](https://github.com/jhy/jsoup/issues/2074)
-   **Selector sub-expressions**: (Regression) in a selector like `parent [attr=va], other`, the `, OR` was binding
    to `[attr=va]` instead of `parent [attr=va]`, causing incorrect selections. The fix includes a EvaluatorDebug class
    that generates a sexpr to represent the query, allowing simpler and more thorough query parse
    tests. [2073](https://github.com/jhy/jsoup/issues/2073)
-   **XML CData output**: When generating XML-syntax output from parsed HTML, script nodes containing (pseudo) CData
    sections would have an extraneous CData section added, causing script execution errors. Now, the data content is
    emitted in a HTML/XML/XHTML polyglot format, if the data is not already within a CData
    section. [2078](https://github.com/jhy/jsoup/issues/2078)
-   **Thread safety**: The `:has` evaluator held a non-thread-safe Iterator, and so if an Evaluator object was
    shared across multiple concurrent threads, a NoSuchElement exception may be thrown, and the selected results may be
    incorrect. Now, the iterator object is a thread-local. [2088](https://github.com/jhy/jsoup/issues/2088)

***

Older changes for versions 0.1.1 (2010-Jan-31) through 1.17.1 (2023-Nov-27) may be found in
[change-archive.txt](./change-archive.txt).

</details>

<details>
<summary>vladmihalcea/hypersistence-utils</summary>

### [`v3.7.0`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-370---December-18-2023)

\================================================================================

Oracle Interval Type does not support negative intervals [#&#8203;682](https://github.com/vladmihalcea/hypersistence-utils/issues/682)

Return original object if target and original are the same when merging [#&#8203;677](https://github.com/vladmihalcea/hypersistence-utils/issues/677)

Add a hypersistence-utils-hibernate-63 module for Hibernate 6.3 [#&#8203;657](https://github.com/vladmihalcea/hypersistence-utils/issues/657)

</details>

<details>
<summary>quarkusio/quarkus</summary>

### [`v3.6.4`](https://github.com/quarkusio/quarkus/releases/tag/3.6.4)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.6.3...3.6.4)

##### Complete changelog

-   [#&#8203;37808](https://github.com/quarkusio/quarkus/pull/37808) - CLI - Rework how missing commands are detected
-   [#&#8203;37803](https://github.com/quarkusio/quarkus/pull/37803) - Dev mode: add null checks to TimestampSet.isRestartNeeded()
-   [#&#8203;37798](https://github.com/quarkusio/quarkus/pull/37798) - Only update ~/.docker/config.json if it exists
-   [#&#8203;37787](https://github.com/quarkusio/quarkus/pull/37787) - Take priority into account in ConfigurationImpl
-   [#&#8203;37775](https://github.com/quarkusio/quarkus/pull/37775) - Docs: fix typo in rabbitmq reference documentation
-   [#&#8203;37770](https://github.com/quarkusio/quarkus/pull/37770) - Add SequencedCollection to BANNED_INTERFACE_TYPES
-   [#&#8203;37768](https://github.com/quarkusio/quarkus/issues/37768) - Running application build with JDK21 and target Java 17 crash with NoClassDefFoundError: java/util/SequencedCollection
-   [#&#8203;37731](https://github.com/quarkusio/quarkus/pull/37731) - Query logging is being done in io.quarkus.mongodb.panache.common.runtime.MongoOperations
-   [#&#8203;37723](https://github.com/quarkusio/quarkus/pull/37723) - Do not use CSRF cookie as the next token value
-   [#&#8203;37717](https://github.com/quarkusio/quarkus/pull/37717) - Docs: Fix incorrect link reference in Cross-Site Request Forgery Prevention guide
-   [#&#8203;37714](https://github.com/quarkusio/quarkus/pull/37714) - Remove the driver property in the documentation for Cloud SQL
-   [#&#8203;37710](https://github.com/quarkusio/quarkus/pull/37710) - Use NoStackTraceException in metrics
-   [#&#8203;37677](https://github.com/quarkusio/quarkus/pull/37677) - Bump io.quarkus:quarkus-platform-bom-maven-plugin from 0.0.100 to 0.0.101
-   [#&#8203;37654](https://github.com/quarkusio/quarkus/pull/37654) - Make sure dev mode is properly written in doc
-   [#&#8203;36848](https://github.com/quarkusio/quarkus/issues/36848) - CSRF Token with HMAC signature gets double signed

</details>

<details>
<summary>quarkusio/quarkus-platform</summary>

### [`v3.6.4`](https://github.com/quarkusio/quarkus-platform/compare/3.6.3...3.6.4)

[Compare Source](https://github.com/quarkusio/quarkus-platform/compare/3.6.3...3.6.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->