@jsxc/jsxc
Version:
Real-time XMPP chat application with video calls, file transfer and encrypted communication
687 lines (628 loc) • 23.4 kB
Markdown
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
## 4.4.0 (2022-02-04)
### Added
- add chat message context menu
- add Last Message Correction (XEP-0308)
- add generic type to storage interface
- add User Avatar (XEP-0084)
### Fixed
- style of roster tags
- [#1063](https://github.com/jsxc/jsxc/issues/1063) check for notification api
- creation of multi html element msg
- type of hook repository
- after receive message pipe
- [#1021](https://github.com/jsxc/jsxc/issues/1021) pep based avatars
- xml jquery type in vcard
- display of load mam button (mam)
- load button after history was cleared (mam)
- add loadbutton to clear event (mam)
- show "Load Button" if messare area is empty (mam)
- translations
- info msg for contacts without omemo (omemo)
- qr code without devices (omemo)
- user media request
- [#1028](https://github.com/jsxc/jsxc/issues/1028) jingle message initiation
- [#1050](https://github.com/jsxc/jsxc/issues/1050) escape nickname (muc)
- create rooms (muc)
- use random nickname for bookmarks without nick
- video removal
- display of remote stream
- offline contacts translation
- fix darkmode
- fix own avatar on sm
- fix main menu height on sm
### Misc
- improve code structure
- fix style format
- fix code style
- update demo domain
- fix demo script
- update locales
## 4.3.1 (2021-07-08)
### Fixed
- types for client interface
- fix conflicts with external styles
### Misc
- add env flag to build script
- update locales
- update dependencies
- fix otr package version
- update code style
## 4.3.0 (2021-07-05)
### Added
- show different icon for open rooms (muc)
- make room features persistant
- [#890](https://github.com/jsxc/jsxc/issues/890) add Jingle Message Initiation (XEP-0353)
- encapsulate session storage for every plugin
- [#864](https://github.com/jsxc/jsxc/issues/864) update sounds
- [#748](https://github.com/jsxc/jsxc/issues/748)[#985](https://github.com/jsxc/jsxc/issues/985) avatar upload
- [#304](https://github.com/jsxc/jsxc/issues/304) announce own avatar
- add QR codes to device dialog (#993) (omemo)
- [#1001](https://github.com/jsxc/jsxc/issues/1001) decrypt attachment (omemo)
- show extended room info (muc)
- show occupants in room info (muc)
- add entity time (XEP-0202)
- add Blocking Commands (XEP-0191)
- [#978](https://github.com/jsxc/jsxc/issues/978) add status to presence
- add software version (XEP-0092)
- add info about general xeps to settings
- make some sections in settings dialog collapsible
- open xep links in new tab
- add roster filter for groups
- show roster group in vcard dialog
- [#77](https://github.com/jsxc/jsxc/issues/77) show roster group in roster
- process image url as attachment
- open attachment in new tab
- add User Search (XEP-0055)
- use conference subdomain as default
### Fixed
- presence update for members with multiple devices (muc)
- try all user media before failing
- member jid retrieval (muc)
- [#1025](https://github.com/jsxc/jsxc/issues/1025) nickname in status code messages (mux)
- webpack config error
- toggle of archive button
- cut off roster tooltip
- [#1004](https://github.com/jsxc/jsxc/issues/1004) text input overflow
- handle muc codes in message elements (muc)
- muc user list timeout
- placeholder after avatar was removed
- show message error
- handle error messages from OpenFire
- catch error messages
- do not mark messages with error
- [#1007](https://github.com/jsxc/jsxc/issues/1007) disable chatmarker for error messages
- [#1009](https://github.com/jsxc/jsxc/issues/1009)[#1010](https://github.com/jsxc/jsxc/issues/1010) duplicated roster item
- enabling from default disabled plugins (#1006)
- do not attach thumbnail (omemo)
- decode filename of attachment (omemo)
- ignore case for encrypted image (omemo)
- remove encrypted file link from message (omemo)
- status for roster items
- generate thumbnail for links
- set correct filename for attachment
- feature list (muc)
- check support for blocking command
- null exception
- return type of sendIQ
- support check (omemo)
- collapsible settings
- xep url
- disable omemo checkbox in settings
- multi user contact subscription
- stop propagation for tag click
- force support check (omemo)
- move clear all notifications entry to bottom (#991)
- [#994](https://github.com/jsxc/jsxc/issues/994) message input padding
- [#972](https://github.com/jsxc/jsxc/issues/972) use border-box
- open help in new tab
- vcard parsing
### Misc
- update locales
- add wti workflow (#1038)
- move to github actions
- update dependencies
- add config for fantasticon
- replace node-sass with dart sass
- fix issues with upgrade deps
- upgrade to webpack 5
- use eslint
- small typo fix (#988)
- fix karma tests
- improve build time
- reorganize call sync
- add types to persistant map
- use prettier for consistent code style
- add types
- add missing semicolon
- emphasize roster item with unread msg
## 4.2.1 (2020-12-28)
### Fixed
- [#962](https://github.com/jsxc/jsxc/issues/962) handle muc presence errors
- send displayed marker only for private chats
- [#959](https://github.com/jsxc/jsxc/issues/959) use full jid only for private chats
- [#958](https://github.com/jsxc/jsxc/issues/958)[#961](https://github.com/jsxc/jsxc/issues/961) transparent roster menu
### Misc
- update language files
## 4.2.0 (2020-12-13)
### Added
- add option to disable automatic reconnect on page load
- [#889](https://github.com/jsxc/jsxc/issues/889) add xmpp ping (server-to-client) plugin
- [#771](https://github.com/jsxc/jsxc/issues/771) add dark theme and css vars
- [#856](https://github.com/jsxc/jsxc/issues/856) add image paste feature (#948)
### Fixed
- [#955](https://github.com/jsxc/jsxc/issues/955) duplicate message when load mam (#955)
- delete device list on refresh (omemo)
- [#933](https://github.com/jsxc/jsxc/issues/933) fix icon if someone leaves a muc room
- [#873](https://github.com/jsxc/jsxc/issues/873) fix chat window width
### Misc
- update lang
- update dependencies
- highlight only contacts without subscription
- upgrade to node 12
### Deprecated
- SASS variables will be removed in one of the next releases. Use css variables instead.
## 4.1.1 (2020-06-22)
### Fixed
- [#897](https://github.com/jsxc/jsxc/issues/897) switching from online to online
- [#901](https://github.com/jsxc/jsxc/issues/901) stop propagation for key events
- [#894](https://github.com/jsxc/jsxc/issues/894) define sasl mechanisms
- [#896](https://github.com/jsxc/jsxc/issues/896) minimized audio call
- [#904](https://github.com/jsxc/jsxc/issues/904) call freeze on iphone
- [nextcloud/jsxc.nextcloud#148](https://github.com/nextcloud/jsxc.nextcloud/issues/148) turn lock green if all omemo devices are verified
- [#909](https://github.com/jsxc/jsxc/issues/909) play ringtone on incoming calls
- [#915](https://github.com/jsxc/jsxc/issues/915) remove DTMF jingle messages
### Misc
- update dependencies
## 4.1.0 (2020-05-15)
### Added
- wait 2 sec before marking msg as read
- mark message only as read if client is visible
- include jquery in build
- [#871](https://github.com/jsxc/jsxc/issues/871) add minimize button to video dialog
- show only chat messages in roster, no system messages
- sort roster by last message
- implement partially xmpp uri scheme, message and join
- multi account support
- improve new device handling (omemo)
- mark messages as not transferred
- encrypt file transfer (omemo)
- show file transfer progress
- [#683](https://github.com/jsxc/jsxc/issues/683) add plugin meta data
- show avatar placeholder while offline
- add audio stream to screen sharing call
- [#745](https://github.com/jsxc/jsxc/issues/745) implemented chat markers (XEP-0333)
### Fixed
- fix republishing of lost device id (omemo)
- fix bundle structure (omemo)
- xmpp attach failure results in start failure
- disable video handler for rooms
- fix support for anonymous accounts
- ui init for accounts without contacts
- room member list (muc)
- sound imports
- chat history flickering
- fix interface for disco info repo
- fix undefined error (me-command)
- fix some custom emoticons
- html escaping in remove dialog
- [#865](https://github.com/jsxc/jsxc/issues/865) disappearing muc sender name
- show avatar for historical muc msg
- mark chat windows with partial subscription
- fix fullscreen button
- bump max supported version for all plugins
- suppress chat state msg for unknown sender
- fix dialog for message from unknown sender
- restore notices on reload
- unread message sync
- remove mailto prefix from mail link
- fix roster badge on fullscreen
- handle failed RTC peer config request
- show notifications only for incoming messages
- show notifications for group messages
- do not overwrite trust level (omemo)
### Misc
- show webpack progress
- update locales
- use eval source map for dev
- update dependencies
- enhance release process
- improve pre commit hook
- remove unused code
- remove unused roster functions
- update travis script
- enhance muc member badge
- change color of messages
- improve fullscreen layout
- highlight unknown device in list (omemo)
## 4.0.0 - 2020-04-08
### Added
- OMEMO ([XEP-0384])
- MUC invitation
- [#341](https://github.com/jsxc/jsxc/issues/341) mediated invitation
- direct invitation ([XEP-0249])
- both also via contact drag and drop
- [#6](https://github.com/jsxc/jsxc/issues/6) voice-only call
- [#501](https://github.com/jsxc/jsxc/issues/501) JID escaping ([XEP-0106])
- [#178](https://github.com/jsxc/jsxc/issues/178) add in-band password change ([XEP-0077])
- [#178](https://github.com/jsxc/jsxc/issues/178) add in-band registration ([XEP-0077])
- send file via file drop
- insert emoticon at cursor position
- MUC subject in window header
- full screen layout
- display presence messages
- option to disable all plugins
- highlight quotations
- show notice if offline contacts are hidden
- show notice if contact list is empty
- prepared multi account support (still experimental)
- [#512](https://github.com/jsxc/jsxc/issues/512) add option to specify storage backend
- show MUC avatars
- show mute icon in roster if notifications are muted
- support unicode emoticons
- show spinner while enabling encrypted transfer
- call all available resources at once
- add simple webcam test
- [#656](https://github.com/jsxc/jsxc/issues/656) support multiple incoming calls at once
- use sender avatar color as background color for group chat messages
- [#841](https://github.com/jsxc/jsxc/issues/841) add support for RTL messages
### Fixed
- video calls can now be initiated from any tab
- [#328](https://github.com/jsxc/jsxc/issues/328) MUC joining from any tab
- fix and improve emoticon insertion
- remove non-persistent contacts after login
- translate OTR status messages
- enhance roster insertion
- [#608](https://github.com/jsxc/jsxc/issues/608) reset window size if browser gets resized
### Changed
- use Consistent Color Generation ([XEP-0392])
- use more natural bounce animation for notice icon
- use object based public API
- use custom resource with jsxc prefix as default resource
### Developer notes
- [Typescript], [Webpack], [Handlebars], [Karma], [Mocha], [Chai] and [Sinon]
- removed `build` and `doc` folder, git submodules, bower and grunt
- share one XMPP connection across all tabs
- add plugin API
- form watcher instead of form option
- API to add roster menu entries (`jsxc.addMenuEntry()`)
- API to test BOSH server (`jsxc.testBOSHServer()`)
- use [SASS guidelines] and [BEM]-like style syntax
- add commit lint and require [Conventional Commits]
### Removed/Pending
- Jingle file transfer
- bookmarks
[Typescript]: http://www.typescriptlang.org
[Webpack]: https://webpack.js.org
[Handlebars]: https://handlebarsjs.com
[Karma]: http://karma-runner.github.io/2.0/index.html
[Mocha]: https://mochajs.org
[Chai]: https://www.chaijs.com
[Sinon]: https://sinonjs.org
[XEP-0392]: https://xmpp.org/extensions/xep-0392.html
[XEP-0077]: https://xmpp.org/extensions/xep-0077.html
[XEP-0106]: https://xmpp.org/extensions/xep-0106.html
[XEP-0249]: https://xmpp.org/extensions/xep-0249.html
[XEP-0384]: https://xmpp.org/extensions/xep-0384.html
[Conventional Commits]: https://www.conventionalcommits.org
## 3.1.1 - 2017-02-14
### Fixed
- fix path to dependencies
## 3.1.0 - 2017-02-14
### Added
- add application states
- [#393](https://github.com/jsxc/jsxc/issues/393) add the /me command (XEP-0245)
- [#422](https://github.com/jsxc/jsxc/issues/422) add multiline message support
- [#431](https://github.com/jsxc/jsxc/issues/431) add Chat State Notifications (XEP-0085)
- [#426](https://github.com/jsxc/jsxc/issues/426) add HTTP File Upload (XEP-0363)
- add Turkish
- [#438](https://github.com/jsxc/jsxc/issues/438) add desktop sharing
- add Nextcloud emoticon
- [#301](https://github.com/jsxc/jsxc/issues/301) add close all button for notices
- [#344](https://github.com/jsxc/jsxc/issues/344) support messages of type `headline`
- add icon to notices
### Fixed
- fix login form submission
- fix display of MUC warning
- [#391](https://github.com/jsxc/jsxc/issues/391) fix MUC initialisation after relogin
- [#394](https://github.com/jsxc/jsxc/issues/394) disable OTR for MUC conversations
- [#399](https://github.com/jsxc/jsxc/issues/399) prompt for MUC password if required
- [#435](https://github.com/jsxc/jsxc/issues/435) fix list of user name suggestions
- [#433](https://github.com/jsxc/jsxc/issues/433) fix i18n interpolation pattern
- fix minor WebRTC issues
- [#440](https://github.com/jsxc/jsxc/issues/440) prevent original login form submission
- [#441](https://github.com/jsxc/jsxc/issues/441) remove console.trace
- [#409](https://github.com/jsxc/jsxc/issues/409) fix presence after accepting contact request
- fix template system
- fix path to strophe.bookmarks (regression)
- fix disabled login form
- fix carbon copy impersonation vulnerability ([CVE-2017-5589+](https://rt-solutions.de/en/2017/02/CVE-2017-5589_xmpp_carbons/))
- ignore malicious roster updates (similar to [CVE-2014-0364](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0364))
- prevent double insertion of MUC setting
### Changed
- update dependencies
- [#385](https://github.com/jsxc/jsxc/issues/385) update i18next
- improve initial focus for login box
- add large emoticons
- [#421](https://github.com/jsxc/jsxc/issues/421) make MUC server field editable
- system message style
- disable sending of OTR whitespace tag by default
- enable carbon copies by default
- remove border radius from dialog
- exclude dev dependencies from build
- move jquery library to example folder
- omit unreadable OTR messages
## 3.0.1 - 2016-10-28
### Added
- add room configuration in master tab
- improve muc multi tab support
- update/add languages: zh, pt, hu, pl, en, pt
- use user preferred browser languages
- remove inline styles
### Fixed
- fix multi-tab support
- fix uncaught type error on login
- fix second call issue
- fix option retrieval
- fix auto-accept
- fix the answer to anything
- fix boolean muc configurations
### Changed
- allow selector for options.logoutElement
- attach also with parameters from options.xmpp
## 3.0.0 - 2016-03-11
### Added
- responsive material-like design
- refactoring settings dialog
- over 1600 emoticons from emojione
- support mobile devices
- new video call interface
- status usable for daltonian
- use css for animations
- file transfer via WebRTC
- previews
- show progress
- use local date and time format
- add no-video-call-possible icon
- add disabled OTR icon
- add padlock icon to message
- display line breaks in chat messages
- hide avatar for connected messages (MUC)
- auto approve incoming contact request (if contact is already in our roster)
### Fixed
- use crendential when performing turn credential ajax crossdomain call
- update favico.js
- update strophe.js
- update strophe.jinglejs
- improve otr verification
- update locales
- reset unread counter on logout
- fix blank video
- fix hang up video call
- fix debug information
- fix muc message without id
- fix type error in jingle error
### Changed
- remove "develop" branch and use instead "master" branch
- Makefile for setup developer environment
- remove loginTimeout option
- add new jsxc.start function to start chat with password or sid/rid
- add new option loginForm.ifFound (deprecates loginForm.attachIfFound)
- add named dialogs
- new message object
- remove outdated stuff
- merge jsxc.webrtc.css into jsxc.css
## 2.1.5 - 2015-11-17
- Reset TURN credentials on login
- Fix IE<11 textfield
## 2.1.4 - 2015-09-10
- remove leading at sign from comments in build file
## 2.1.3 - 2015-09-08
- fix bookmark loading
- show unread notifications only if the chat window has no focus
## 2.1.2 - 2015-08-12
- update grunt-sass (fix invalid css)
## 2.1.1 - 2015-08-10
- update strophe.jingle (fix login with Safari and older versions of IE, FF, Chrome)
- update favico.js
- fix undefined error variable in IE
- fix handling of escaped JIDs (e.g. used in transports)
- fix placeholder replacement
- rearrange bootstrap import
- add option for custom online user manual
## 2.1.0 - 2015-07-31
- add bookmark feature for rooms (XEP-0048)
- add reserved room feature for muc (XEP-0045#10.1.3)
- add counter of unread messages to roster, window and favicon
- add join as URI query type
- add ru language
- add roster resize hint
- make dialog responsive
- allow messages to persons without valid friendship
- replace video library for more stable connection
- fix DSA key generation in Chrome > 42
- fix minor roster UI issues
- add jsbeautifier and prettysass
- improve example
- extract templates to single files
- replace colorbox with magnific popup
- use parts of bootstrap
- replace strophe.jingle with strophe.jinglejs (jingle.js)
- concatenate strings for better translatability
- add new option attach if login form was found
- add new option loginForm.startMinimized
- add new option loginForm.enable (deprecates xmpp.onlogin)
- add new option RTCPeerConfig.url (deprecates turnCredentialsPath)
- ICE servers can now be passed as init option
- loadSettings option is no longer required and supports now async requests
## 2.0.1 - 2015-05-23
- improve login box
- fix browsers without CSPRNG generator
- fix AJAX login after credential failure
- fix some WebRTC issues
- fix login with different username after dirty logout
- remove IE (<11) gradient
- remove broken MITM detection
- fix temporary template 404
- fix login option
- add connecting event
## 2.0.0 - 2015-05-08
- add multi-user chat (XEP-0045)
- add window resize handle
- add username autocomplete
- add offline state
- add Italian, French, Polish, Portuguese/Brazil
- use user avatar as notification icon
- show notifications if tabs has no focus
- split files into namespaces
- SASS improvements
- replace own translation engine with i18next
- fix login from login box
- fix selection of chat messages
- fix video calls
- fix emoticons
- fix duplicated roster items
- fix notification request
- fix logout
## 1.1.0a - 2015-02-25
- fix CSS URL path
## 1.1.0 - 2015-01-08
- move from plain CSS to SASS
- show avatar also by EXTVAL (URL), not only by BINVAL
- add XEP-0280 (Message Carbons)
- add XEP-0297 (Stanza Forwarding)
- add option to disable OTR
- add timestamp to messages
- add AJAX/prebind login
- fix offline subscription request
- fix hide offline contacts
- fix error with multiple own resources
- fix avatars with newlines
## 1.0.0 - 2014-11-06
- add unread flag to roster and scroll to target window
- add XEP-0147 URI Scheme Query support
- add has-come-online notification
- add silent notification request
- add more information in vCard view
- add resizable function to chat window
- add vertical scrollbar to window list
- add call information to chat window
- add concatenated and uglified files
- add translations
- minor video call improvements
- minor style improvements
- generate DSA key complete in background
- update caps node property to jsxc.org
- update strophe.jingle
- update OTR
- fix wrong avatars
- fix minor message delivery errors
- fix FF snapshot security error
- fix case sensitive resource handling
- fix non-square avatars
- fix several video issues
- fix messages from unknown (not in roster) jid
- fix vCard retrieval from unknown (not in roster) jid
- fix vCard in second tab
- fix JIDs with non-word characters (replace user identifier)
- improve video window design
- improve user info
- improve login box
- improve SMP user interaction
- improve notifications (sync sound/message, icon)
- minor chat window improvements
- detect email in message
- detect URI scheme in message
- end all private conversations on logout
- remove email pattern from contact dialog
- disable video on second tab
- add/require DISCO DTLS feature for WebRTC
- move emoticons to CSS
- handle loadSettings failure
- change cursor for some elements
- prevent event bubbling for dialog
## 0.8.2 - 2014-08-20
- fix use of custom username
- write to console only if debug flag is set
- allow string|boolean as config param
- add translations
## 0.8.1 - 2014-08-12
- add user-defined xmpp options
- fix login form without id submit
## 0.8.0 - 2014-07-02
- add spanish translation
- add vCard view
- add more emoticons
- add grayscale to buddies without subscription
- add settings for priorities
- add hint if roster is empty
- add sound files
- new chat window design
- enhanced roster design
- fix emoticon replacement (XEP-0038)
- fix some UI issues (explanations,...)
- fix issue with password only field
## 0.7.2 - 2014-05-28
- fix login issue
- fix different dialogs
- fix Safari mobile bug
- fix webworker debugging
- fix issue with Prosody
- fix submodule state
- add debug flag
- add icon for video calls
- add general stylesheet + vector images
- add multiple translations
- add link to online help
- handle webworker security error
- remove outline glow
- reduce tooltip delay
- remove already confirmed friendship request from notice stack
- minor style fixes
- move complete to new notification api
## 0.7.1 - 2014-03-18
- fix emoticons
- fix unique message id
## 0.7.0 - 2014-03-07
- add sound notifications
- add support for custom default avatars
- add support for XEP-0184 (Message Delivery Receipts)
- update & extend hover info
- handle presence of type unsubscribed
- remove roster footer if offline
- enhance OTR error handling
- enhance translations
- reduce initial timeout
- fix notices
- fix friendship response dialog
- fix shared roster item removel
- fix debug function
- fix WebRTC bug
- fix storage check
- fix Firefox fullscreen
## 0.6.0 - 2014-02-28
- add notice stack (for e.g. friendship requests)
- add option to change presence
- support all available presence states
- display own avatar
- fix issue with Prosody
- fix multi-tab support
- fix Chrome notifications
- fix OTR error handling
- fix WebRTC bug
## 0.5.2 - 2014-01-28
- update strophe.js to v1.1.3
- fix debug function (fix initial presence)
- add debug log window
- add warn|error debug functions
## 0.5.1 - 2014-01-27
- fix chat window after call
- fix NULL pointer and context in WebRTC
- handle already attached submit events on login form
- style changes
- fix WebRTC startup
- don't block application on DSA key generation