# Change Log ## 12.10.0 - BOSH and WebSocket transports are now based on Duplex streams. - Stream management state caching may now by async. - Expanded the set of events related to stream management. See [Using Stream Management](./docs/Using_Stream_Management.md). These events are: - `stanza:hibernated` - `message:hibernated` - `message:acked` - `message:failed` - `message:retry` ## 12.9.0 - The default external service discovery namespace was changed to `urn:xmpp:extdisco:2`. Querying using the `:1` namespace can be done with `client.discoverICEServers({ version: '1' })`. ## 12.0.0 **WARNING:** Unlike many previous major version bumps that were almost entirely backwards compatible, v12 is _not_ backwards compatible. Upgrading to v12 _will_ require modifications in existing code. - Complete TypeScript support - Changed JXT implementation (**old JXT definitions will not work**). See [JXT docs](./docs/jxt/README.md) for more information. - **Changed structure/names of JXT definitions for supported XEPs.** See [Supported XEP Formats]('./docs/Supported_XEP_Formats.md) for links to the type definitions of each XEP supported by StanzaJS. - **Removed support for callbacks.** All methods now support Promises only. - Methods using IQ stanzas now return the requested data instead of the full IQ stanza data. - Changed SASL implementation. Old, custom SASL mechanisms will not work. - **Removed JID objects.** JIDs are now treated as strings only. [See src/JID.ts for helper functions.]('./src/JID.ts) - Implemented Stringprep (not PRECIS, yet). - **Removed WildEmitter.** Now using standard EventEmitter. Event handlers using `*` wildcards will need to be changed. - The `*` and `raw:*` events are still supported. - Added input/display helpers for Realtime Text. - **Configuration of transports has changed.** The wsURL/boshURL/transport fields are no longer used. Configuring transports is now done by setting the `transports` field to an object: ``` XMPP.createClient({ transports: { websocket: 'wss://...', bosh: 'https://...' } }) ``` Using `false` instead of a URL will disable that transport type. An object can be used to pass additional configuration, such as BOSH pre-binding rid/sid: ``` XMPP.createClient({ transports: { websocket: false, bosh: { url: 'https://...', rid: 1234, sid: '...' } } }) ``` ## 11.1.0 - Jingle sessions now queue local actions to allow safer handling of WebRTC peer connection objects. ## 11.0.0 - **Changed package name from `stanza.io` to `stanza`.** - The new website URL is https://stanzajs.org ## 10.0.0 -> 10.1.0 - Renamed `muc:affiliation` event to `muc:other` ## 10.0.0 - Converted to ES modules, using Typescript compiler for downleveling. - Moved stanza definitions back from `jxt-xmpp`, obsoleting both `jxt-xmpp` and `jxt-xmpp-types`. - Replaced use of `request` and `xhr` with `cross-fetch`. - SASL mech implementations now live inside `stanza.io`. - Moved host-meta fetching logic into `stanza.io`. - Moved `xmpp-jid` implementation back into `stanza.io`, obsoleting `xmpp-jid`. - Use `ws` module instead of `faye-websocket`. - Dropped support of old, pre-RFC XMPP-over-WebSocket. - Moved `jingle` implementation back into `stanza.io`. ## 9.1.0 -> 9.2.0 - Fixed CSI namespace to use `urn:xmpp:csi:0` - Added support for XEP-0333 Chat Markers ## 6.0.0 -> 6.0.1 - **Bug Fixes** - [#31: Resolve Unicode interop with other clients](https://github.com/otalk/stanza.io/issues/31) ## 5.x.x -> 6.0.0 - **Breaking Changes** - Removed `client.call()` See the [jingle-interop-demos](https://github.com/legastero/jingle-interop-demos/commit/79f50cd481859ce837bda5eff0b7a6a272f0d1d8) for how to recreate the behaviour by working directly with the [jingle.js](https://github.com/otalk/jingle.js) and [localmedia](https://github.com/otalk/localmedia) libraries. ```javascript var localMedia = require('localmedia'); localMedia.start(); //... var sess = client.jingle.createMediaSession(peerJID); sess.addStream(localMedia.localStream); sess.start(); ``` * `client.jingle` was updated to a `jingle.js v1.0` instance. The method `client.jingle.startLocalMedia()` has been removed, in favor of using the [localmedia](https://github.com/otalk/localmedia) module instead (which is not bundled in `stanza.io`).