Releases: slackapi/bolt-js
Releases · slackapi/bolt-js
@slack/bolt@3.4.1
- Updated default
axios
options to includeproxy:false
to match @slack/web-api package (#979) - thanks @stevengill - Fixed
AwsLambdaReceiver
failing to parseevent.body
ifisBase64Encoded
istrue
(#971, #972) - thanks @TheManWhoStaresAtCode - Added
edited
property toapp_mention
event payload (#960, #961) - thanks @seratch and @hi-se - Added a new deploy-aws-lambda project to the examples directory (#815, #940) - thanks @TheManWhoStaresAtCode
- Use Kanji for Japanese documents (#983) - thanks @disneyresidents
@slack/bolt@3.4.0
Many improvements (thanks to the awesome contributors!) are included in this release 🎉
- Key improvements / bug fixes:
- Allow command handlers to match regexes (#846) - Thanks @itowlson!
- Fix #947 Enable to use app.client with passed token for single workspace apps (#948) - Thanks @seratch!
- Fix #935 enterprise_id in InstallationQuery can be invalid for Slack Connect channel events (#949) - Thanks @seratch!
- Fix #951 TypeScript 4.3 typing for KnownKeys (#953) - Thanks @lokshunhung!
- Fix #629 confusing debug log by ConversationStore (#827) - Thanks @seratch!
- Fix #496 Add clientOptions.logger option (and improvements to other attributes too) (#856) - Thanks @seratch!
- Fix #757 Add event type name validation & channel_type filter middleware (#857) - Thanks @seratch!
- Fix #718 add tokenVerificationEnabled flag to App constructor (#863) - Thanks @seratch!
- Fix #534 respond support in view_submission listeners (#889) - Thanks @seratch!
- Add async support of signingSecret to ExpressReceiver (#877) - Thanks @gmathieu!
- AwsLambdaReveiver: Ignore casing of HTTP headers as requested by RFC (#938) - Thanks @TheManWhoStaresAtCode!
- Improvements / bugfixes for better TypeScript supports:
- Fix #926 by adding more subtype ones to message event types (#928) - Thanks @seratch!
- Fix #925 by adding optional properties to CodedError interface (#927) - Thanks @seratch!
- Fix #897 Add built-in fields to Context object type (#902) - Thanks @seratch!
- Fix #894 Unable to build options request objects in TypeScript (#900) - Thanks @seratch!
- Fix #720 ack(options) does not compile in TypeScript (#878) - Thanks @seratch!
- Fix #497 Add types of state.values on modal submission (#879) - Thanks @seratch!
- Fix #911 TypeScript error when using builtin onlyViewActions middleware (#912) - Thanks @seratch!
- Add blocks / attachments to app_mention event interface (#906) - Thanks @seratch!
- Add missing message events & more type tests (#832) - Thanks @seratch!
- Fix #956 Add bot_id / bot_profile to GenericMessageEvent (#957) - Thanks @seratch!
- Fix a few array field definition errors in TypeScript (#873) - Thanks @seratch!
- Make API response types more specific utilizing the types in web-api 6.2 (#915) - Thanks @seratch!
- Add is_bot_user_member to link_shared event (#946) - Thanks @rbrishabh!
- Fix WorkflowStep StepUpdateArguments property types (#830) - Thanks @k725!
- Add the type for plain_text_input action elements (#706) - Thanks @br-tim-ray!
- Updated ReactionRemovedEvent type (#918) - Thanks @rr-codes!
- Export options types and interfaces (#872) - Thanks @trevor-gullstad!
- Add trigger_id to ViewSubmitAction interface (#828) - Thanks @misscoded!
- Lots of documentation improvements:
- Fix a typo in Japanese documents (#916) - Thanks @p-chan!
- Small clarification constraint reference (#844) - Thanks @shaydewael!
- Add TypeScript Getting Started equivalent (#845) - Thanks @shaydewael!
- Add JA-JP reference (#851) - Thanks @shaydewael!
- Update the default receiver in the reference document (#835) - Thanks @seratch!
- Update the description about processBeforeResponse in Reference document (#836) - Thanks @seratch!
- Fix #632 Add Japanese version of PR #626 (App Home document) (#852) - Thanks @seratch!
Here is the list of all the issues / pull requests included in the release: https://github.com/slackapi/bolt-js/milestone/8?closed=1
@slack/bolt@3.3.0
- Add regex support to events handler (#284 #763) - Thanks @pdontha!
- Fix typo in
SocketModeReceiver
logging sentence (#807) - Thanks @KhushrajRathod! - Refactor built-in receivers to be a little more DRY (#810) - Thanks @seratch!
- Add built-in
AwsLambdaReceiver
(#784 #785) - Thanks @seratch! - Simplify
app.start()
for Socket Mode by allowing extra arguments to be optional (#823) - Thanks @KhushrajRathod - Lots of documentation improvements!
- Fix
event.user
to correctly reference user ID (#790) - Thanks @mwbrooks - Add Japanese translation for AWS Lambda Deployment Guide (#798) - Thanks @seratch @Shay
- Update AWS Lambda Deployment guide to use
@vendia/serverless-express
(#799 #800 #804 #806) - Thanks @januswel @avery100 @mwbrooks - Clarify that OAuth is not supported by custom receivers (#711) - Thanks @mwbrooks
- Fix
@slack/bolt@3.2.0
- Added new
channel_id_changed
event (#779, #783) - thanks @stevengill - Added missing properties on Message Types (#774, #782) - thanks @shaydewael, @sunakane
- Fixed inconsistencies with OAuth docs (#777) - thanks @misscoded
- Export Reaction interfaces (#765, #776) - thanks @KhushrajRathod, @feliperyan
@slack/bolt@3.1.1
Updated @slack/socket-mode
dependency to use a range (^1.0.0
) instead of a specific version - thanks @stevengill
@slack/bolt@3.1.0
- Added Four New Workflow / Workflow Step Event Interfaces (#767, #768) - thanks @misscoded
- Fixed node-slack-sdk issue 1156 where Socket Mode error was not bubbling up (#764) - thanks @stevengill
- Added a localized Japanese Heroku deployment guide (#762) - thanks @seratch, @shaydewael
@slack/bolt@3.0.0
Breaking changes
- Updated minimum Nodejs version to 12.13.0, updated minimum TypeScript version to 4.1 (#727, #728) - thanks @stevengill
- Removed
orgAuthorize
option when initializingApp
. If you used this option previously, you must useauthorize
instead for both single workspace installs and org wide app installs. See the migration guide to learn more! (#730) - thanks @stevengill - The built-in OAuth with Org wide app installs no longer uses
InstallationStore.fetchOrgInstallation()
orInstallationStore.storeOrgInstallation()
. If you used these previously, you must useInstallationStore.fetchInstallation()
andInstallationStore.storeInstallation()
instead. See the migration guide to learn more! (#730) - thanks @stevengill
New Features
- Bolt for JavaScript now supports Socket Mode! When initializing an
App
, use thesocketMode: true
option to choose connecting to Slack without an HTTP server (:wave: goodbye managing ngrok). In order to use Socket Mode, you must first enable it for your app’s configuration (https://api.slack.com/apps → Your App → Socket Mode).- This is implemented using the new
SocketModeReceiver
class. This receiver allows your app to receive events from Slack over a WebSocket connection. - To learn more about Socket Mode, checkout the release blog post and Bolt for JavaScript docs and example
- Implemented in #630 - thanks @stevengill, @aoberoi, @seratch, @shaydewael, @mwbrooks
- This is implemented using the new
- Added a new Developer Mode. When initializing an
App
, conditionally check for when you’re not in production (e.g.process.NODE_ENV !==
'``production``'
) to setdeveloperMode:
```true`. Developer Mode currently enables debug logging, enables SocketMode, adds a custom failure handler for OAuth, and outputs the body of every incoming request. (#714, #742) - thanks @stevengill HTTPReceiver
is the new default receiver forApp
. This will allow Bolt for JavaScript apps to more easily work with other popular web frameworks (Hapi.js, Koa, etc). (#670, #753) - thanks @aoberoiExpressReceiver
is still available to use for those of you that have usecases which aren’t covered byHTTPReceiver
.- This new receiver does not allow you to add custom routes, but instead allows you to access its
requestListener
property to selectively send it requests. This property follows the exact function signature as the first argument to Node’s built-inhttp.createServer()
, so it’s very flexible. It will throw anHTTPReceiverDeferredRequestError
, with areq
andres
property if it was not able to handle a given request.
- Added support for starting an HTTPS server with
app.start()
. This method now takes TLS options as its second parameter (after the port). The simplest example of starting an HTTP server isapp.start(3000, { key: MY_TLS_KEY, cert: MY_TLS_CERT })
. (#234, #658) - thanks @aoberoi
@slack/bolt@2.7.0
- Fix regression in
is_enterprise_install
check for slash commands (#737, #738) - thanks @mattcasey - Added missing properties to
AppMentionInterface
(#735, #739) - thanks @misscoded, @BenAlderfer - Add
channel
and other missing properties to allMessageEvent
interfaces (#736, #740) - thanks @misscoded, @BenAlderfer
@slack/bolt@2.6.0
- Fixed security vulnerability with
axios
dependency (#721, #722) - Thanks @brendan-miller-snyk - Added reference docs to documentation site (#712) - Thanks @shaydewael
- Added deploying to AWS Lambda guide (#698) - Thanks @mwbrooks
- Improved types for message events and all subtypes. (#709, #311) - Thanks @aoberoi
- Moved CI over to GitHub Actions (#704) - Thanks @stevengill
@slack/bolt@2.5.0
- Added support for org wide app installations. If you are using the built-in OAuth support, make sure to update your
InstallationStore
by addingsaveOrgInstall
andfetchOrgInstall
methods. (#521) - thanks @stevengill, @aoberoi - added support for
Authorizations
in event api payloads which are replacingauthed_users
andauthed_teams
(#655, #656) - thanks @stevengill - Added heroku deployment guide (#220, #651) - thanks @mwbrooks
- Docs fixes (#641, #665, #667, #668, #683, #686, #693 ) - thanks @shaydewael, @misscoded, @mwbrooks, @seratch, @stevengill
- Updated hubot example to work with bolt for Javascript v2.0+ (#676) - thanks @nicholas-a-clark