JC Brand
7539fc1a6f
Move functions out of src/headless/core.js into utils
2022-12-28 21:36:40 +01:00
JC Brand
f740332e95
Fixes based on Github's code scanning results
2022-12-28 21:14:15 +01:00
JC Brand
fdcab413f5
Use crypto.randomUUID()
if available
2022-12-28 11:49:37 +01:00
JC Brand
3c6dd5d0ae
Run npm update
in src/headless
2022-12-28 10:18:14 +01:00
JC Brand
6494b34da3
Don't automatically log in again if the user manually logged out
...
Fixes #2759
2022-12-28 09:57:32 +01:00
JC Brand
447fe8ba08
Refactor the code related to storing SCRAM keys
...
- No need to create a new storage mechanism, just use `persistent`.
- Store SCRAM keys per JID
- Upon succesfull login, store the current session JID, so that we know who to fetch SCRAM keys for
- Only store SCRAM keys when the device is trusted
Fixes #3001
2022-12-28 09:56:41 +01:00
based-a-tron
8ab0b718de
Added option to save SCRAM keys
2022-12-27 22:39:12 +01:00
JC Brand
a76393f216
Also handle 'normal'
messages from roster contacts
2022-12-26 19:17:40 +01:00
JC Brand
e63ba2075f
Use repeat
directive to render roster and MUC occupant items
...
If we don't use `repeat`, a DOM node may be reused with different state
(e.g. the `model` it receives originally changes upon next render).
https://lit.dev/docs/templates/lists/#when-to-use-map-or-repeat
Fixes #2816
2022-12-13 10:04:13 +01:00
JC Brand
78a7841afb
Don't duplicate disco items across two collections
...
We now no longer have an `.items` collection on a disco entity.
Instead, add a new API method `api.disco.entities.items` should be used.
This should solve the issue of the entities disappearing when reloading
the page.
Updates #2925
2022-12-02 22:50:06 +01:00
JC Brand
8c84e276ff
Run npm update
2022-11-08 20:35:17 +01:00
JC Brand
a251608fc5
Fix race condition where waitUntilFeaturesDiscovered
was resolved too early
...
When calling `api.supports(feature, entity_jid)`, it checks whether the entity
supports the feature or whether any of the sub-items on the entity
supports that feature.
However, on `DiscoEntity`, the `waitUntilFeaturesDiscovered` promise
didn't wait for the items on the entity to be fetched, and was therefore
resolved too quickly.
This caused the file upload button to not render.
Updates #2925
2022-11-08 20:03:37 +01:00
JC Brand
038a38cae0
Run npm update
2022-11-04 16:47:01 +01:00
JC Brand
d5deed0871
Release 10.0.0
2022-10-30 17:03:41 +01:00
dependabot[bot]
a5be19ad50
Bump dayjs from 1.11.3 to 1.11.6
...
Bumps [dayjs](https://github.com/iamkun/dayjs ) from 1.11.3 to 1.11.6.
- [Release notes](https://github.com/iamkun/dayjs/releases )
- [Changelog](https://github.com/iamkun/dayjs/blob/v1.11.6/CHANGELOG.md )
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.3...v1.11.6 )
---
updated-dependencies:
- dependency-name: dayjs
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-30 10:51:26 +01:00
JC Brand
dbd36a0d75
Ran npm update
and manually update to Strophe 1.6.0
2022-10-30 10:10:27 +01:00
JC Brand
eb9fd74c77
Provide error message instead of aesm URL
...
when encrypted media cannot be decrypted because it can't be downloaded.
2022-10-23 11:56:59 +02:00
JC Brand
63cc8411a5
Run npm update
2022-10-19 10:02:03 +02:00
JC Brand
ef16a52ced
Make toggling of rooms list reactive and remove imperative code
2022-10-02 16:04:49 +02:00
JC Brand
e555469e3f
Move clearSession
function to utils
2022-09-29 14:26:54 +02:00
JC Brand
b4eb6c0994
Always enable carbons upon connection or reconnection
...
Previously we tried to remember whether carbons were enabled before by
saving a flag in the session storage, but apparently this resulted in
false positives and carbons then not being enabled.
With carbons not enabled, clients don't get sent messages.
I don't like the idea of enabling carbons every time the page reloads,
but the alternative is lost messages which is way worse.
I think the issue is that it's not possible to guarantee that the
session is always properly cleared. For example if Converse crashes, and
then the page is reloaded, the session will wrongly indicate that
carbons have been enabled, even though they won't be.
2022-09-29 14:26:54 +02:00
JC Brand
5760379e0a
Only send out ping if we're actually authenticated
...
Fixes #2562
2022-09-20 15:01:55 +02:00
JC Brand
a4ee3085b7
MUC: Don't ping when we're not connected
...
Instead, wait for the `reconnection` event and then ping.
2022-09-20 15:01:51 +02:00
JC Brand
fbe86e5af8
Create an ElementView base modal and use it for all modals
...
Modals are now all web components and are opened by component name.
2022-09-16 10:33:47 +02:00
JC Brand
8378ce739b
Remove unfurls for hyperlinks removed in a message correction
2022-09-12 10:05:54 +02:00
JC Brand
f9e6c3ff95
Fix groups auto-complete for add-contact modal
2022-09-12 09:28:37 +02:00
JC Brand
0489e0f902
Remove unused function
2022-09-01 17:28:29 +02:00
JC Brand
8ae4b6abd4
MUC: Set occupant ID from reflected message
2022-08-21 17:33:35 +02:00
JC Brand
ca3c8fc10b
Fixes #3007
...
Bugfix: Links in message become text when the message is edited
2022-08-20 11:12:59 +02:00
JC Brand
e8b9681a15
MAM: Always query for newest MAM messages after cached ones have been fetched
...
The `_converse.connection.restored` check ensured that 1:1 chats
manually opened after tab reload would never get their MAM messages
fetched 🤦
2022-08-17 13:53:31 +02:00
JC Brand
51516e38f6
Remove duplicate trigger of afterMessagesFetched
2022-08-17 13:38:57 +02:00
JC Brand
de72d6bae3
MUC: Move constants to separate file
2022-08-17 12:53:41 +02:00
JC Brand
0d9561e666
MUC: When closing, only send read marker if we were entered
...
When using RAI, it's possible to close a MUC without it being entered.
2022-08-17 12:49:44 +02:00
Keith Maika
17e5804be7
Select the immediate body, not the one in fallback.
2022-08-13 10:00:40 +02:00
JC Brand
fd9e41a917
Fix failing test.
...
The fix from @joudinet was to call `this.items.create` on `DiscoEntity`,
however we still need to pass in the same `entity` model as before so that both
collections (`this.items` and `_converse.disco_entities`) have a
referene to the same model.
That way, when attributes like `.identities` are added on the entity,
it's available from both `this.items` and `_converse.disco_entities`.
2022-08-12 10:27:09 +02:00
Johan Oudinet
760f4f7dd1
Fix missing disco-items in session storage
...
This should fix #2925 .
2022-08-12 10:07:12 +02:00
JC Brand
5231262bda
Take from_real_jid
into account when determining sender
...
of MUC messages.
This is safer than simply checking nicknames when the XEP-0421 occupant-id is not
available.
2022-08-12 09:43:49 +02:00
JC Brand
34927b5b77
Use occupant_id
to get own occupant O(1) if available
2022-08-12 09:21:01 +02:00
JC Brand
7028286855
Restrict editing of MUC messages...
...
to ones with the same XEP-0421 occupant ID
2022-08-11 22:44:11 +02:00
JC Brand
342c75775b
Save the user's XEP-0421 occupant ID on the ChatRoom
2022-08-11 15:47:09 +02:00
JC Brand
f1cc8c85f4
Rename the stanza
TTL to stx
to avoid name clashes
2022-08-11 15:30:51 +02:00
JC Brand
c5588e3c49
MUC: Features are fetched in join
...
due to the `await this.refreshDiscoInfo()` call in `join`.
So should be safe to remove the check whether features were fetched.
2022-08-11 15:12:55 +02:00
JC Brand
3d19def3e7
Wait for emojis to be initialized before sending a message
2022-08-11 14:31:28 +02:00
JC Brand
53521c2236
Import utilty function directly and use optional chaining
2022-08-11 10:42:00 +02:00
JC Brand
22170450b4
Stop using zipObject
from lodash
2022-08-11 10:30:07 +02:00
JC Brand
f014db8b7a
Update nick
attr on ChatRoom when user nick changes
2022-08-11 10:23:16 +02:00
JC Brand
fe9345b7fc
MUC: only allow corrections with a matching sender occupant-id
...
Also, don't render messages from a sender with a different `occupant-id`
as a followup message.
2022-08-10 14:53:18 +02:00
JC Brand
d2bdce51e8
Add a tagged template literal function stanza
...
For creating XML stanzas from template literals.
2022-08-10 14:50:12 +02:00
JC Brand
5f6e70289b
Run npm update
to update headless deps
2022-08-09 11:06:44 +02:00
JC Brand
71d1383604
Move code that sets active
flag on session to initSession
...
It doesn't belong in the `converse-status` plugin and the event handler
doesn't get registered when all CSI-related timeouts are set to 0.
2022-07-25 11:59:25 +02:00