Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ jobs:
node-version: ${{ matrix.node-version }}
- run: npm ci --verbose
- run: npm test
- name: Build docs
if: matrix.node-version == '24.x'
run: npm run docs
- name: Upload coverage to Codecov
if: matrix.node-version == '24.x'
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
Expand Down
16 changes: 15 additions & 1 deletion docs/english/_sidebar.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,21 @@
"type": "html",
"value": "<hr>"
},
"tools/bolt-js/reference",
"tools/bolt-js/interface-reference",
{
"type": "category",
"label": "Reference",
"link": {
"type": "doc",
"id": "tools/bolt-js/reference/index"
},
"items": [
{
"type": "autogenerated",
"dirName": "tools/bolt-js/reference"
}
]
},
{
"type": "html",
"value": "<hr>"
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/listener-middleware.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Listener middleware is used for logic across many listener functions (but usually not all of them). They are added as arguments before the listener function in one of the built-in methods. You can add any number of listener middleware before the listener function.

There’s a collection of [built-in listener middleware](/tools/bolt-js/reference#built-in-listener-middleware-functions) that you can use like `directMention` which filters out any message that doesn’t directly @-mention your bot at the start of a message.
There’s a collection of [built-in listener middleware](/tools/bolt-js/interface-reference#built-in-listener-middleware-functions) that you can use like `directMention` which filters out any message that doesn’t directly @-mention your bot at the start of a message.

But of course, you can write your own middleware for more custom functionality. While writing your own middleware, your function must call `await next()` to pass control to the next middleware, or `throw` to pass an error back up the previously-executed middleware chain.

Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/receiver.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ For a more in-depth look at a receiver, [read the source code for the built-in `

## Customizing built-in receivers

The built-in `HTTPReceiver`, `ExpressReceiver`, `AwsLambdaReceiver` and `SocketModeReceiver` accept several configuration options. For a full list of options, see the [Receiver options reference](/tools/bolt-js/reference#receiver-options).
The built-in `HTTPReceiver`, `ExpressReceiver`, `AwsLambdaReceiver` and `SocketModeReceiver` accept several configuration options. For a full list of options, see the [Receiver options reference](/tools/bolt-js/interface-reference#receiver-options).

### Extracting custom properties

Expand Down
6 changes: 3 additions & 3 deletions docs/english/concepts/using-the-assistant-class.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
If you don't have a paid workspace for development, you can join the [Developer Program](https://api.slack.com/developer-program) and provision a sandbox with access to all Slack features for free.
:::

The [`Assistant`](/tools/bolt-js/reference#the-assistantconfig-configuration-object) class can be used to handle the incoming events expected from a user interacting with an app in Slack that has the **Agents** feature enabled.
The [`Assistant`](/tools/bolt-js/interface-reference#the-assistantconfig-configuration-object) class can be used to handle the incoming events expected from a user interacting with an app in Slack that has the **Agents** feature enabled.

:::warning[The `Assistant` class targets the assistant messaging experience]
The `Assistant` class handles the [assistant messaging experience](/ai/developing-agents) (`assistant_view`), in which agent conversations happen in separate Chat and History tabs. Apps going forward use the agent messaging experience (`agent_view`) by default, where conversations happen in the Messages tab and you handle events such as [`app_home_opened`](/reference/events/app_home_opened) and [`message.im`](/reference/events/message.im) directly. Refer to [Adding agent features](/tools/bolt-js/concepts/adding-agent-features) and the [agent messaging experience changelog entry](/changelog/2026/06/30/agent-messages-tab) for the default experience and migration guidance.
Expand Down Expand Up @@ -57,7 +57,7 @@ While the `assistant_thread_started` and `assistant_thread_context_changed` even

If you do provide your own `threadContextStore` property, it must feature `get` and `save` methods.

:::tip[Be sure to give the [reference docs](/tools/bolt-js/reference#agents--assistants) a look!]
:::tip[Be sure to give the [reference docs](/tools/bolt-js/interface-reference#agents--assistants) a look!]
:::

### Configuring your app to support the `Assistant` class
Expand Down Expand Up @@ -168,7 +168,7 @@ When the user messages your app, the [`message.im`](/reference/events/message.im

Messages sent to the app do not contain a [subtype](/reference/events/message/#subtypes) and must be deduced based on their shape and any provided [message metadata](/messaging/message-metadata/).

There are three [utilities](/tools/bolt-js/reference#the-assistantconfig-configuration-object) that are particularly useful in curating the user experience:
There are three [utilities](/tools/bolt-js/interface-reference#the-assistantconfig-configuration-object) that are particularly useful in curating the user experience:
* `say`
* `setTitle`
* `setStatus`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_label: Reference
sidebar_label: Interface and configuration reference
---

# Bolt for JavaScript interface and configuration reference
Expand Down
2 changes: 1 addition & 1 deletion docs/english/migration/migration-v4.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ import { defaultProcessEventHandler } from '@slack/bolt';

## 🏭 Built-in middleware changes {#built-in-middleware-changes}

Two [built-in middlewares](/tools/bolt-js/reference#built-in-middleware-functions), `ignoreSelf` and `directMention`, previously needed to be invoked as a function in order to _return_ a middleware. These two built-in middlewares were not parameterized in the sense that they should just be used directly; as a result, you no longer should invoke them and instead pass them directly.
Two [built-in middlewares](/tools/bolt-js/interface-reference#built-in-middleware-functions), `ignoreSelf` and `directMention`, previously needed to be invoked as a function in order to _return_ a middleware. These two built-in middlewares were not parameterized in the sense that they should just be used directly; as a result, you no longer should invoke them and instead pass them directly.

As an example, previously you may have leveraged `directMention` like this:

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# bufferIncomingMessage()

```ts
function bufferIncomingMessage(req): Promise<BufferedIncomingMessage>;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:117](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L117)

## Parameters

### req

`IncomingMessage`

## Returns

`Promise`\<[`BufferedIncomingMessage`](../../../../interfaces/BufferedIncomingMessage.md)\>
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# buildContentResponse()

```ts
function buildContentResponse(res, body): void;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:147](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L147)

## Parameters

### res

`ServerResponse`

### body

`any`

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# buildNoBodyResponse()

```ts
function buildNoBodyResponse(res, status): void;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:130](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L130)

## Parameters

### res

`ServerResponse`

### status

`number`

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# buildSSLCheckResponse()

```ts
function buildSSLCheckResponse(res): void;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:141](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L141)

## Parameters

### res

`ServerResponse`

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# buildUrlVerificationResponse()

```ts
function buildUrlVerificationResponse(res, body): void;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:136](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L136)

## Parameters

### res

`ServerResponse`

### body

`any`

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# defaultAsyncDispatchErrorHandler()

```ts
function defaultAsyncDispatchErrorHandler(args): Promise<void>;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:181](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L181)

## Parameters

### args

[`ReceiverDispatchErrorHandlerArgs`](../interfaces/ReceiverDispatchErrorHandlerArgs.md)

## Returns

`Promise`\<`void`\>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# defaultDispatchErrorHandler()

```ts
function defaultDispatchErrorHandler(args): void;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:167](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L167)

## Parameters

### args

[`ReceiverDispatchErrorHandlerArgs`](../interfaces/ReceiverDispatchErrorHandlerArgs.md)

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# defaultProcessEventErrorHandler()

```ts
function defaultProcessEventErrorHandler(args): Promise<boolean>;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:187](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L187)

## Parameters

### args

[`ReceiverProcessEventErrorHandlerArgs`](../interfaces/ReceiverProcessEventErrorHandlerArgs.md)

## Returns

`Promise`\<`boolean`\>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# defaultUnhandledRequestHandler()

```ts
function defaultUnhandledRequestHandler(args): void;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:213](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L213)

## Parameters

### args

[`ReceiverUnhandledRequestHandlerArgs`](../interfaces/ReceiverUnhandledRequestHandlerArgs.md)

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# extractRetryNumFromHTTPRequest()

```ts
function extractRetryNumFromHTTPRequest(req): number | undefined;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:11](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L11)

## Parameters

### req

`IncomingMessage`

## Returns

`number` \| `undefined`
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# extractRetryReasonFromHTTPRequest()

```ts
function extractRetryReasonFromHTTPRequest(req): string | undefined;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:24](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L24)

## Parameters

### req

`IncomingMessage`

## Returns

`string` \| `undefined`
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# getHeader()

```ts
function getHeader(req, header): string;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:107](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L107)

## Parameters

### req

`IncomingMessage`

### header

`string`

## Returns

`string`
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# isBufferedIncomingMessage()

```ts
function isBufferedIncomingMessage(req): req is BufferedIncomingMessage;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:102](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L102)

## Parameters

### req

`IncomingMessage`

## Returns

`req is BufferedIncomingMessage`
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# parseAndVerifyHTTPRequest()

```ts
function parseAndVerifyHTTPRequest(
options,
req,
_res?
): Promise<BufferedIncomingMessage>;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:55](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L55)

## Parameters

### options

[`RequestVerificationOptions`](../interfaces/RequestVerificationOptions.md)

### req

`IncomingMessage`

### \_res?

`ServerResponse`\<`IncomingMessage`\>

## Returns

`Promise`\<[`BufferedIncomingMessage`](../../../../interfaces/BufferedIncomingMessage.md)\>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# parseHTTPRequestBody()

```ts
function parseHTTPRequestBody(req): any;
```

Defined in: [src/receivers/HTTPModuleFunctions.ts:41](https://github.com/slackapi/bolt-js/blob/main/src/receivers/HTTPModuleFunctions.ts#L41)

## Parameters

### req

[`BufferedIncomingMessage`](../../../../interfaces/BufferedIncomingMessage.md)

## Returns

`any`
Loading