UNPKG

@slack/client

Version:

A library for creating a Slack client

173 lines (121 loc) 9.54 kB
### v3.5.0 (2016-06-14) * Adds the [team.billableInfo](https://api.slack.com/methods/team.billableInfo) endpoint to the team facet * Adds the [bots.info](https://api.slack.com/methods/bots.info) endpoint and creates the `bots` facet * Removes the `user` optional argument from the [stars.list](https://api.slack.com/methods/stars.list) method ### v3.4.0 (2016-05-31) * Adds the [chat.meMessage](https://api.slack.com/methods/chat.meMessage) endpoint to the chat facet ### v3.3.1 (2016-05-26) * Doesn't crash the RTM client if a message with a `reply_to` ID with no response handler is received ### v3.3.0 (2016-05-24) * Creates a memory data store by default if an undefined, but not false|null value is passed for `opts.dataStore` * Aliases the retry policies to be human readable ### v3.2.1 (2016-05-24) * Updates the RTM client to emit an UNABLE_TO_RTM_START event when all reconnection attempts are exhausted, rather than throwing an error * Suppresses some spurious log lines when tests are run ### v3.2.0 (2016-05-23) * Updates the `_makeAPICall` method to make the optional API args param optional to pass in, so the third param to this function can be either an opts object or a cb. This is to allow us to add optional arguments to API methods without it being a breaking change. * Fixes the `retry-after` header name and adds a numeric fallback if the retry-after value can't be parsed, thanks @foiseworth! * Adds new API methods to various facets - [`auth.revoke`](/lib/clients/web/facets/auth.js) - [`users.identify`](/lib/clients/web/facets/users.js) * Adds optional arguments to: - [`files.comments.add`](/lib/clients/web/facets/files.comments.js): adds a `channel` param, for the channel id of the location to associate with the new comment - [`chat.delete`](/lib/clients/web/facets/chat.js): adds a boolean `as_user` param, to support deleting a message as the authed user ### v3.1.1 (2016-05-19) * Removes the DM facet * Updates the aliasing approach for IM / DM to correctly alias DM to the IM Facet ### v3.1.0 (2016-05-01) * Updates the [`lib/clients/web/facets/index.js`](/lib/clients/web/facets/index.js) to reference the new facets added in the 3.0.0 update, thanks @ekmartin * Adds in a [`reminders`](/lib/clients/web/facets/reminders.js) client facet * MemoryDataStore.getUserByEmail now looks at the correct part of the user object for the email, thanks @SimantovYousoufov * Adds docs and examples for the data store and sending DMs, thanks @PaulAsjes! ### v3.0.0 (2016-04-24) * Adds a number of new web client API facets: - [`dnd`](/lib/clients/web/facets/dnd.js) - [`files.comments`](/lib/clients/web/facets/files.comments.js) - [`mpim`](/lib/clients/web/facets/mpim.js) - [`usergroups`](/lib/clients/web/facets/usergroups.js) - [`usergroups.users`](/lib/clients/web/facets/usergroups.users.js) * **BREAKING** Changes the function signatures for some facet methods: - [`channels.list`](/lib/clients/web/facets/channels.js): `exclude_archived` moves to an `opts` object, instead of being a separate argument - [`groups.list`](/lib/clients/web/facets/groups.js): `exclude_archived` moves to an `opts` object, instead of being a separate argument - [`chat.delete`](/lib/clients/web/facets/chat.js): The `ts` and `channel` arguments are re-ordered to be alphabetical - [`stars.list`](/lib/clients/web/facets/stars.js): `user` moves to an `opts` object, instead of being a separate argument - [`users.list`](/lib/clients/web/facets/users.js): `presence` moves to an `opts` object, instead of being a separate argument * **BREAKING** Updates the function signature for [`BaseAPIClient.prototype.makeAPICall`](/lib/clients/client.js) to take required API args and optional API args as separate params, from `makeAPICall(endpoint, optData, optCb)` to `makeAPICall(endpoint, apiArgs, apiOptArgs, optCb)` * New methods are added to various facets: - [`files.revokePublicURL`](/lib/clients/web/facets/files.js) - [`files.sharedPublicURL`](/lib/clients/web/facets/files.js) - [`team.integrationLogs`](/lib/clients/web/facets/team.js) - [`team.integrationLogs`](/lib/clients/web/facets/team.js) ### v2.3.0 (2016-02-28) * Caches messages on the RTM client, to improve handling in cases where message send fails * Removes the handler for the websocket level `ping` handler (not the RTM API level ping handler) * Refactors the logic for handling ws send responses to a single function ### v2.2.1 (2016-03-12) * Adds an `im` alias for the `dm` facet to the web client, to match the API endpoint naming ### v2.2.0 (2016-03-12) * Adds promise support to the RTM client `send` and `sendMessage` methods * Fixes the way message response callbacks work, so that the success case is only called when the websocket receives a message with a `reply_to` matching the id of the dispatched message, instead of when the ws instance signals message send success * Fixes the way `getAPICallArgs` works, to correctly pull data out of the `opts` arg ### v2.1.0 (2016-03-05) * Adds promises to the Slack clients. If no callback is passed to an API call, a promise will be created and returned instead. * Logs a warning if an API response with a `warning` key is received ### v2.0.6 (2016-03-01) * Fixes a crash introduce in `2.0.5` if you try and instantiate a `WebClient` without passing in any options ### v2.0.5 (2016-03-01) * Updates the way that API requests are throttled to: * avoid a condition where the request queue callback could be called multiple times, causing a crash * refactor the logic in `_callTransport` into multiple functions to make it easier to follow * Updates dev dependencies: * eslint * nock * eslint-config-airbnb ### v2.0.4 (2016-02-28) * Passes through the logLevel param to the getLogger function ### v2.0.3 (2016-02-28) * The RTM `AUTHENTICATED` event now also emits the `rtm.start` payload * Fixes the way that loggers are instantiated and used, so that the JSDoc for `opts.logger` is correct ### v2.0.2 (2016-02-15) * Adds coveralls to the repo, to track code coverage and display a badge in the README * Updates the disconnect function on the RTM client to support both an error message and a code or reason for the disconnect, e.g. `account_inactive` * Updates the message-handlers for `team_xxx` events to set the team back to the data-store once changes are made ### v2.0.1 (2016-02-13) * Updates to `ws@1.0.1` * Fixes a bad variable name in [`example-web-client`](/examples/example-web-client.js) ### v2.0.0 (2016-02-13) Refactors the library to javascript, adds a lot of tests and restructures it to improve maintainability and extend functionality. * Creates two separate clients: - RTM; manages connection to Slack's RTM API, including reconnects - Web; provideas a callback interface to all of Slack's Web API endpoints * Moves the memory data store implementation off the clients and into its own class * Uncouples the model objects from the clients; model functions to send messages to channels etc are now accessed via the web and RTM client * Moves the transport layer (websockets and HTTP) to a pluggable model, so that complex transports (through request proxies etc) can be handled * Adds test coverage on most core functionality in the library ### v1.5.1 (2015-12-15) * Adds support for a request-proxy URL to use the client from behind a proxy ### v1.5.0 (2015-12-01): * Updates the ws library from 0.4.3 to 0.8.1 * Reconnects when a `team_migration_started` event is received * Supports finding users by email from the memory data store * Fixes the getUnreadCount and getChannelsWithUnreads functions * Emits error code and message when the ws closes * Removes no-op call when a `ping` is received on the websocket ### v1.4.0 (2015-02-25): * Added callbacks to all API calls ([#20](https://github.com/slackhq/node-slack-client/pull/20)) * Added support for star added/delete events ([#27](https://github.com/slackhq/node-slack-client/pull/27) * Fixed sample code ([#18](https://github.com/slackhq/node-slack-client/issues/18)) * `getChannelByName` now strips leading hash marks ([#9](https://github.com/slackhq/node-slack-client/pull/9)) * Dropped support for Node 0.8 ([#25](https://github.com/slackhq/node-slack-client/pull/25)) * Fix duplicate scripts entries in package.json ([230c7f74](https://github.com/slackhq/node-slack-client/commit/230c7f743a48f600aff5660367cf1e6816cc67e2)) ### v1.3.1 (2015-02-03): * Added ability to call chat.postMessage web API method ([#15](https://github.com/slackhq/node-slack-client/pull/15)) * Added ability to update and delete messages ([#14](https://github.com/slackhq/node-slack-client/pull/14) and [#17](https://github.com/slackhq/node-slack-client/pull/17)) * Added sample code ([7ee93a7b](https://github.com/slackhq/node-slack-client/commit/7ee93a7bd51c97519d6d5deb54bd8058612a9b19)) * Fixed `getChannelsWithUnreads` ([#8](https://github.com/slackhq/node-slack-client/pull/8)) * Fixed race condition when emitting `open` event ([#19](https://github.com/slackhq/node-slack-client/pull/19)) ### v1.2.2 (2014-12-16): * Compile coffeescript to JS before publishing to NPM ([#6](https://github.com/slackhq/node-slack-client/pull/6)) * Fixed typo in docs ([#2](https://github.com/slackhq/node-slack-client/pull/2/files)) ### v1.2.0 (2014-12-08) * First public release