aboutsummaryrefslogtreecommitdiff
path: root/lib (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* lib/irc: add missing Isupport.chanModesSimon Ser2022-01-311-3/+14
| | | | It was called by forEachChannelModeUpdate, but wasn't implemented.
* lib/irc: add CapRegistrySimon Ser2021-12-102-48/+78
|
* Implement exponential backoff for reconnectionsSimon Ser2021-12-071-3/+40
| | | | Closes: https://todo.sr.ht/~emersion/gamja/118
* Refactor ISUPPORT handlingSimon Ser2021-12-072-63/+99
| | | | | | Add a helper class to parse ISUPPORT tokens. Instead of having manual ISUPPORT handling all over the place, use pre-processed values.
* lib/client: use Error objects for error eventsSimon Ser2021-12-061-22/+16
|
* Handle FAIL ACCOUNT_REQUIREDSimon Ser2021-12-061-3/+17
|
* Read nickname from RPL_WELCOMESimon Ser2021-12-061-0/+1
| | | | References: https://github.com/ircdocs/modern-irc/pull/146
* Add Client.join, show join errors in popupSimon Ser2021-12-042-0/+32
|
* lib/client: add generic error handling to roundtrip()Simon Ser2021-12-042-40/+50
|
* lib/client: introduce IRCErrorSimon Ser2021-12-041-5/+19
|
* Disable debug logs in productionSimon Ser2021-12-011-2/+7
| | | | | | | | | | | console.debug logs cause some performance issues because the browser is forced to save the logged objects just in case the user opens the debugging tools. They can be force-enabled back by adding ?debug=1 to the URL. Only console.debug is disabled, console.log and other levels are a lot less verbose and still enabled by default.
* Add support for draft/account-registrationSimon Ser2021-11-301-0/+50
| | | | A new UI to register and verify accounts is added.
* Ignore RPL_AWAYSimon Ser2021-11-231-0/+1
|
* lib/client: make authenticate() return a promiseSimon Ser2021-11-211-19/+32
| | | | This lets the caller handle the success/failure.
* lib/client: send BOUNCER BIND and CAP END immediatelySimon Ser2021-11-211-27/+24
| | | | Don't wait for auth to finish. This reduces the number of roundtrips.
* lib/client: catch handleMessage errorsSimon Ser2021-11-211-1/+9
|
* lib/client: always request sasl cap when availableSimon Ser2021-11-211-10/+9
| | | | This will allow us to issue post-registration SASL commands.
* lib/client: don't disconnect on SASL error if registeredSimon Ser2021-11-211-1/+3
| | | | | This will let users try multiple auth attempts when we'll implement post-registration auth.
* lib/client: remove one roundtrip during SASL authSimon Ser2021-11-211-26/+29
| | | | | Instead of waiting for the server's empty challenge, send two AUTHENTICATE commands in a row.
* lib/client: don't error out if SASL isn't available on RPL_WELCOMESimon Ser2021-11-191-1/+3
| | | | | Some servers (soju) might remove the sasl cap on connection registration.
* lib/irc: fix handling for prefixes without hostSimon Ser2021-11-151-16/+16
| | | | name!user is a valid prefix.
* Store WHO list in RPL_ENDOFWHOSimon Ser2021-11-101-0/+7
| | | | | This allows the state-tracker to figure out whether a WHO query returned no result.
* Only allow one WHO command at a timeSimon Ser2021-11-101-22/+31
| | | | Closes: https://todo.sr.ht/~emersion/gamja/120
* Don't stop fetching backlog on errorSimon Ser2021-11-101-1/+2
| | | | | | | Some servers allow fetching history from some targets but not others. Don't completely stop fetching chat history on error. The root cause was a variable shadowing in Client.fetchBatch.
* Add support for draft/extended-monitorSimon Ser2021-11-091-0/+1
| | | | References: https://github.com/ircv3/ircv3-specifications/pull/466
* Auto-join when adding new network on irc:// link clickSimon Ser2021-11-071-0/+12
| | | | Closes: https://todo.sr.ht/~emersion/gamja/111
* lib/client: use Client.isMyNick to handle self-NICK messagesSimon Ser2021-11-031-1/+1
| | | | This handles case-mapping.
* lib/irc: add "fullname" to isMeaningfulRealnameSimon Ser2021-11-021-1/+1
|
* lib/client: fix missing account in WHOXSimon Ser2021-11-021-0/+4
|
* lib/client: generalize pendingWHOIS, store list in ENDOF* messagesSimon Ser2021-10-231-14/+31
| | | | | This allows processing a list of replies atomically and receiving the ENDOF* marker.
* lib/client: rename whoisDB to pendingWHOIS, garbage collectSimon Ser2021-10-231-6/+12
|
* lib/irc: extend parseURL to support flags and skip auth + optionsSimon Ser2021-10-201-9/+45
|
* Avoid using `export * as namespace`Simon Ser2021-10-181-1/+2
| | | | This isn't supported by Safari.
* Unescape ISUPPORT valuesSimon Ser2021-10-181-1/+8
| | | | | | This allows ISUPPORT values to contain spaces. References: https://github.com/ircdocs/modern-irc/pull/137
* lib/irc: "unknown" is not a meaningful realnameSimon Ser2021-10-151-1/+1
|
* Use linkifyjs moduleSimon Ser2021-10-141-3/+1
|
* Handle IRC URLs without channel nameSimon Ser2021-10-131-4/+4
|
* Handle click on irc:// channel URLs inside buffersSimon Ser2021-10-132-24/+35
| | | | References: https://todo.sr.ht/~emersion/gamja/71
* Switch from anchorme to linkifyjsSimon Ser2021-10-132-45/+62
|
* Add support for SASL EXTERNALSimon Ser2021-10-121-4/+13
| | | | | Can be useful when the server is using e.g. a cookie for authentication purposes.
* lib/client: handle MONITOR without value in ISUPPORTSimon Ser2021-10-071-1/+5
|
* components/buffer: pretty-print RPL_CHANNELMODEIS and RPL_CREATIONTIMESimon Ser2021-10-061-1/+1
|
* components/buffer: add RPL_UMODEIS pretty-printingSimon Ser2021-10-051-0/+1
|
* Hide meaningless real namesSimon Ser2021-09-211-0/+17
|
* Add support for WHOXSimon Ser2021-09-212-3/+84
| | | | This allows querying the account of the user.
* Add support for account-notifySimon Ser2021-09-211-0/+1
|
* Add support for extended-joinSimon Ser2021-09-211-0/+1
|
* lib/irc: drop CRLF for outgoing messagesSimon Ser2021-09-181-1/+0
| | | | | | Trailing CRLF must not be included in WebSocket messages. Closes: https://todo.sr.ht/~emersion/gamja/104
* Fix double space introduced before last paramHubert Hirtz2021-09-171-1/+3
|
* lib/irc: fix formatMessage when last arg starts with colonSimon Ser2021-09-081-1/+1
| | | | Fixes: a51be5037d3f ("lib/irc: only add colon to trailing arg when necessary")