the-eater / fossil Goto Github PK
View Code? Open in Web Editor NEWYet another XMPP client
Home Page: https://the-eater.github.io/Fossil
License: MIT License
Yet another XMPP client
Home Page: https://the-eater.github.io/Fossil
License: MIT License
This should allow
This will allow us to use IndexedDB
Can you update the XEP-0384: OMEMO Encryption support to 0.4.0+?
And XEP-0454: OMEMO Media sharing:
Diff Tool:
PS: Not sure that 0.3.0 was complete before:
It is possible to have a XEPs and RFCs support page with version (XEP-XXXX v1.2)?
Examples:
Contact list is currently based on contacts.
Should be based around chats. this would allow putting MUC's in the contact list
Currently all devices are silently accepted. there should be an option to see which fingerprints are being used and deny some
This should use an abstraction layer over the native implementation. e.g.
Cordova may be supported (https://github.com/blocshop/sockets-for-cordova) but also Node (for Electron)
Currently stream management is turned on, but the stream is not continued after reconnect
I'm testing Fossil in different scenarios, it worked between two accounts but when I try to contact a third person I can't send the message and I see only error messages in logs:
Duplicate PreKeyMessage for session
VM3107 bundle.js:85730 Decrypting {iv: "SFh6GKnHAOxSTlZduMIyig==", authTag: "CuBwZ4+JwqmAwNpvZcxSrg==", tagLength: 128, payload: "9qcdyq/f", key: "4VRTx5OgYqY6GUr1yiH2NQ==", …}
VM3107 bundle.js:85730 Decrypting {iv: "wVv3nZMtAeW8y89UUvJUiQ==", authTag: "W4w7DyTDPz3O6kVdATqm0g==", tagLength: 128, payload: "LF13XAhWUdYVqwKVDnGqhQ==", key: "DUjh1GTa9zS8z0VtLzNL5A==", …}
VM3104 libsignal-protocol.js:25278 Uncaught (in promise) Error: Invalid signature
at VM3104 libsignal-protocol.js:25278
at new Promise (<anonymous>)
at Object.verify (VM3104 libsignal-protocol.js:25276)
at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35157)
at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35268)
at VM3104 libsignal-protocol.js:35804
(anonymous) @ VM3104 libsignal-protocol.js:25278
verify @ VM3104 libsignal-protocol.js:25276
Ed25519Verify @ VM3104 libsignal-protocol.js:35157
Ed25519Verify @ VM3104 libsignal-protocol.js:35268
(anonymous) @ VM3104 libsignal-protocol.js:35804
Promise.then (async)
queueJobForNumber @ VM3104 libsignal-protocol.js:36459
processPreKey @ VM3104 libsignal-protocol.js:35796
_callee9$ @ VM3107 bundle.js:85449
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
getRecipientSessions @ VM3107 bundle.js:85523
_callee15$ @ VM3107 bundle.js:85934
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
createHeader @ VM3107 bundle.js:86077
_callee14$ @ VM3107 bundle.js:85864
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
createMessage @ VM3107 bundle.js:85883
_callee13$ @ VM3107 bundle.js:85792
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
sendMessage @ VM3107 bundle.js:85825
_callee$ @ VM3107 bundle.js:83999
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:83940
(anonymous) @ VM3107 bundle.js:83940
(anonymous) @ VM3107 bundle.js:83940
send @ VM3107 bundle.js:84033
onTextInput @ VM3107 bundle.js:83089
callCallback @ VM3107 bundle.js:39595
invokeGuardedCallbackDev @ VM3107 bundle.js:39634
invokeGuardedCallback @ VM3107 bundle.js:39491
invokeGuardedCallbackAndCatchFirstError @ VM3107 bundle.js:39505
executeDispatch @ VM3107 bundle.js:39889
executeDispatchesInOrder @ VM3107 bundle.js:39911
executeDispatchesAndRelease @ VM3107 bundle.js:40009
executeDispatchesAndReleaseTopLevel @ VM3107 bundle.js:40020
forEachAccumulated @ VM3107 bundle.js:39988
processEventQueue @ VM3107 bundle.js:40165
runEventQueueInBatch @ VM3107 bundle.js:42660
handleTopLevel @ VM3107 bundle.js:42669
handleTopLevelImpl @ VM3107 bundle.js:42400
batchedUpdates @ VM3107 bundle.js:50135
batchedUpdates @ VM3107 bundle.js:41383
dispatchEvent @ VM3107 bundle.js:42474
VM3104 libsignal-protocol.js:25278 Uncaught (in promise) Error: Invalid signature
at VM3104 libsignal-protocol.js:25278
at new Promise (<anonymous>)
at Object.verify (VM3104 libsignal-protocol.js:25276)
at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35157)
at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35268)
at VM3104 libsignal-protocol.js:35804
That third person is using both Conversations and Gajim at the same time.
There should somewhere be a place where you can see your own fingerprint as QR and coloured hash.
Currently it locks the main thread
I'm using dev mode (npm start
).
When I'm connecting with localStorage cleared I get:
Unhandled Rejection (TypeError): Cannot read property 'roster' of undefined
(anonymous function)
C:/Workspaces/Projects/Fossil/src/fossil/roster.js:25
22 | this.booted = true;
23 |
24 | this.contacts.forEach((c) => c.boot());
> 25 | this.client.getRoster((err, resp) => this.update(resp.roster));
26 | }
27 |
28 | update(roster) {
and blank screen. After refresh I'm immediately met with:
Unhandled Rejection (InvalidCharacterError): Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
Function.base64StringToArrayBuffer
C:/Workspaces/Projects/Fossil/src/fossil/stanzaio/omemo.js:227
224 | }
225 |
226 | static base64StringToArrayBuffer(str) {
> 227 | const byteStr = atob(str);
After closing that screen everything works.
I could share credentials to my test accounts if that helps with debugging (my contact details in GitHub profile page).
Depends on #3
Currently it's hardcoded on fossil
making 2 clients conflict with eachother.
User should set resource, so it's identifyable from where he is logged in.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.