UNPKG

@pusher/chatkit

Version:

Pusher Chatkit client library for browsers and react native

321 lines (209 loc) 9.08 kB
# Changelog This project adheres to [Semantic Versioning Scheme](http://semver.org) --- ## [Unreleased](https://github.com/pusher/chatkit-client-js/compare/0.7.18...HEAD) ## [0.7.18](https://github.com/pusher/chatkit-client-js/compare/0.7.17...0.7.18) - 2018-10-12 ### Changes - Increased default connection timeout from 10 to 20 seconds - Bump pusher-platform-js dependency to 0.15.2 ## [0.7.17](https://github.com/pusher/chatkit-client-js/compare/0.7.16...0.7.17) - 2018-06-18 ### Changes - Internal fix to ensure that the room is properly returned from `leaveRoom`. No external change. ## [0.7.16](https://github.com/pusher/chatkit-client-js/compare/0.7.14...0.7.16) - 2018-06-18 ### Additions - The connection timeout introduced in 0.7.13 is configurable by passing `connectionTimeout` (milliseconds) to the `ChatManager` constructor. ## [0.7.14](https://github.com/pusher/chatkit-client-js/compare/0.7.13...0.7.14) - 2018-06-12 ### Changes - Adds a `disconnect` method to `ChatManager` which disconnects a user from Chatkit. ## [0.7.13](https://github.com/pusher/chatkit-client-js/compare/0.7.12...0.7.13) - 2018-06-12 ### Changes - Subscriptions will now time out after 5s if no initial state is received. ## [0.7.12](https://github.com/pusher/chatkit-client-js/compare/0.7.11...0.7.12) - 2018-04-30 ### Changes - Uploads files to path scoped by user ID (no external change) ## [0.7.11](https://github.com/pusher/chatkit-client-js/compare/0.7.9...0.7.11) - 2018-04-30 ### Changes - Batch set cursor requests (no external change) ## [0.7.9](https://github.com/pusher/chatkit-client-js/compare/0.7.8...0.7.9) - 2018-04-10 ### Additions - De-duplicate user information requests. - Send SDK info headers along with every request (version, platform, etc). ## [0.7.8](https://github.com/pusher/chatkit-client-js/compare/0.7.7...0.7.8) - 2018-04-04 ### Changes - Remove the es build because it was causing problems with webpack. If we want to add it back later more investigation and testing will be required. ## [0.7.7](https://github.com/pusher/chatkit-client-js/compare/0.7.6...0.7.7) - 2018-04-03 ### Changes - Point `es.js` to the es module build not the web build. ## [0.7.6](https://github.com/pusher/chatkit-client-js/compare/0.7.5...0.7.6) - 2018-04-03 ### Changes - Fill in a sensible default for missing presence data so we don't have to explicitly check for undefined. - Use ES5 syntax in `es.js` to satisfy `create-react-app`'s build script. ## [0.7.5](https://github.com/pusher/chatkit-client-js/compare/0.7.4...0.7.5) - 2018-03-26 ### Changes - type check the `private` option to `updateRoom` rather than casting, so that default is `undefined` not `false`. ## [0.7.4](https://github.com/pusher/chatkit-client-js/compare/0.7.3...0.7.4) - 2018-03-20 ### Additions - es module build for named imports and tree shaking when consuming the SDK with rollup ## [0.7.3](https://github.com/pusher/chatkit-client-js/compare/0.7.2...0.7.3) - 2018-03-20 ### Changes - removed `getAllRooms` from the current user. It only causes confusion. Anyone using `getAllRooms` can replace swap it out for something like the following: ```javascript // instead of this currentUser.getAllRooms().then(allRooms => { doTheThing(allRooms) }) // do this currentUser.getJoinableRooms().then(joinable => { doTheThing(joinable.concat(currentUser.rooms)) }) ``` ## [0.7.2](https://github.com/pusher/chatkit-client-js/compare/0.7.1...0.7.2) - 2018-03-19 ### Changes - Subobjects of the current user (Rooms, Users, etc) are now mutated instead of replaced, so any reference to a room will represent the up to date state of that room. ### Fixes - Remove chatty logs about requiring room membership after leaving a room ## [0.7.0](https://github.com/pusher/chatkit-client-js/compare/0.6.2...0.7.0) - 2018-03-13 This version represents a radical departure from 0.6.X. The interface is very different, and there's a good chance we'll miss some of the changes in this log. If something isn't working after migration, the best place to look first is probably the [documentation](https://docs.pusher.com/chatkit/reference/javascript). ### Changes - Methods with `onSuccess`, `onFailure` callbacks changed to return promises instead. e.g. ```javascript chatManager .connect() .then(currentUser => {}) .catch(err => {}) ``` - All methods take a single object parameter (see the [documentation](https://docs.pusher.com/chatkit/reference/javascript) for details on each method's arguments) - Delegates renamed to `hooks` throughout. e.g. ```javascript currentUser.subscribeToRoom({ roomId, hooks: { onNewMessage: m => {} } }) ``` - Hooks all prefixed with `on`. e.g. `onNewMessage`, `onUserStartedTyping` - `cursorSet` hook renamed to `onNewCursor` - `authContext.queryParams` and `authContext.headers` both moved to the root options object in the token provider. e.g. ```javascript const tokenProvider = new TokenProvider({ url: 'your.auth.url', queryParams: { someKey: someValue, ... }, headers: { SomeHeader: 'some-value', ... } }) ``` - `addUser` and `removeUser` renamed to `addUserToRoom` and `removeUserFromRoom` - methods that used to accept a `Room` object now accept a `roomId`. e.g. instead of ```javascript currentUser.subscribeToRoom(myRoom, hooks) // WRONG ``` do ```javascript currentUser.subscribeToRoom({ roomId: myRoom.id, hooks }) ``` - The behaviour of read cursors has changed: in particular cursors are now accessed via `currentUser.readCursor` and set with `currentUser.setReadCursor`. See the [Read Cursors section of the documentation](https://docs.pusher.com/chatkit/reference/javascript#read-cursors) for details. - Presence data is now accessable on any user object under `user.presence`. e.g. ```javascript const isOnline = user.presence.state === 'online' ``` - All users that share a common room membership are accesable under `currentUser.users`, and all members of a room are accessable under `room.users`. ## [0.6.2](https://github.com/pusher/chatkit-client-js/compare/0.6.1...0.6.2) - 2018-02-05 ### Fixes - Catch errors in cursors get request ## [0.6.1](https://github.com/pusher/chatkit-client-js/compare/0.6.0...0.6.1) - 2018-01-25 ### Fixes - Made sure that the `messageLimit` argument in `subscribeToRoom` was being validated as a number. - Ensured that the `position` argument in `setCursor` is a valid number. - Throw an error if the userId isn't provided to the ChatManager. ## [0.6.0](https://github.com/pusher/chatkit-client-js/compare/0.5.1...0.6.0) - 2018-01-19 ### Changes - Simplify typing indicator API - removed `startedTypingIn` and `stoppedTypingIn` methods - instead call `isTypingIn` as frequently as you like (rate limited by the SDK) - `startedTyping` and `stoppedTyping` are fired exactly once each per burst of typing ## [0.5.1](https://github.com/pusher/chatkit-client-js/compare/0.5.0...0.5.1) - 2018-01-16 ### Fixes - Fixed `fetchMessageFromRoom` which wasn't passing along the values provided in the `FetchRoomMessagesOptions` parameter as query params. Thanks [@apalmer0](https://github.com/apalmer0)! ## [0.5.0](https://github.com/pusher/chatkit-client-js/compare/0.4.0...0.5.0) - 2018-01-09 ### Changes - `ChatManager` takes a `userId` as a required option, `TokenProvider` no longer does. (`ChatManager` passes the user ID to the token provider internally before requesting a token.) ### Additions - `RoomDelegate` has a `cursorSet` callback, fired whenever a cursor is set in the given room. - `CurrentUser` has a `setCursor` method, to set a cursor in a given room. - The `CurrentUser` object now has a `cursors` property, which contains all the user's own cursors, mapped by room ID. This is guaranteed to be populated before room subscriptions succeed, so e.g. `currentUser.cursors[roomId]` can be used upon receiving messages to determine if they have been read already. ## [0.4.0](https://github.com/pusher/chatkit-client-js/compare/0.3.2...0.4.0) - 2018-01-04 ### Additions - Add initial support for receiving cursors. ## [0.3.2](https://github.com/pusher/chatkit-client-js/compare/0.3.1...0.3.2) - 2017-12-19 ### Changes - `addMessage` has been renamed to `sendMessage` and now expects a different set of parameters: What previously would have been this: ```typescript currentUser.addMessage( "Hi there! 👋", myRoom, (messageId) => { console.log("Success!", messageId); }, (error) => { console.log("Error", error); } ) ``` now needs to be written like this: ```typescript currentUser.sendMessage( { text: "Hey there!", roomId: myRoom.id, }, (messageId) => { console.log("Success!", messageId); }, (error) => { console.log("Error", error); } ) ``` ### Additions - `sendMessage` supports adding an attachment to a message. See [the docs](https://docs.pusher.com/chatkit/client/javascript#messages) for more information. --- Older releases are not covered by this changelog.