Libervia calls Tx-XMPP `typeCheck` on disco info reception to check and normalize values.
In the case of XEP-0115 this cause trouve as the normalization is lossy, and change the
type of some fields (booleans, JIDs). The new `raw_values` property has been added in
Tx-XMPP v0.15 to retrieve original `str` value, so this now used to build the hash.
fix 486
When caps node was requested, disco infos was returned from cache + infos from normal
disco gathering, resulting in doubled items and other entities rejecting the disco info.
This is fixed by subclassing the disco handler to add a trigger. This trigger is used by
XEP-0115 to short circuit the disco gathering and returned its cached data instead.
Our own hash is re-generated on each connection, and validated, so if there is a bug, this
helps see and catch it.
- Fix data types, and use quotes data type to avoid immediate evaluation on Python < 3.14
- Better error catching folling change in `get_infos` in `memory.disco`.
- Some code modernisation (async coroutine).
- the XEP-0115 implementation has been completed with validation, caps node handling in
disco requests, hash generation fixes, and real support for xml:lang.
- the `generate_hash` method has been moved from disco where it's not used anymore to
XEP-0115.
- Disco doesn't hash systematically, it nos use a per-jid cache for non XEP-0115
supporting client.
- code modernisation, with use of `get_plugin_data` for Client data in XEP-0115, type
hints, etc.
- More comments have been added to link algorithms steps to the relevant part in
specification.
- Implement `presence` access model for PEP nodes.
- Add PEP auto-subscription (`+notify` handling)
- New `get_pep_last_items` storage method to retrieve in a single query items to send to
auto-subscribers.
- Online resource tracking.
This completes the PEP support.
rel 476