Skip to content

Commit

Permalink
chore: merge w main
Browse files Browse the repository at this point in the history
  • Loading branch information
zimeg committed Dec 16, 2024
2 parents fb7feea + e002c13 commit 65ada31
Show file tree
Hide file tree
Showing 18 changed files with 47 additions and 49 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![codecov](https://codecov.io/gh/slackapi/bolt-js/branch/main/graph/badge.svg?token=x4oCgiexvp)](https://codecov.io/gh/slackapi/bolt-js)
[![Node.js CI](https://github.com/slackapi/bolt-js/actions/workflows/ci-build.yml/badge.svg)](https://github.com/slackapi/bolt-js/actions/workflows/ci-build.yml)

A JavaScript framework to build Slack apps in a flash with the latest platform features. Read the [getting started guide](https://tools.slack.dev/bolt-js/tutorial/getting-started) to set-up and run your first Bolt app.
A JavaScript framework to build Slack apps in a flash with the latest platform features. Read the [getting started guide](https://tools.slack.dev/bolt-js/getting-started) to set-up and run your first Bolt app.

Read [the documentation](https://tools.slack.dev/bolt-js) to explore the basic and advanced concepts of Bolt for JavaScript.

Expand Down
2 changes: 1 addition & 1 deletion app.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"keywords": ["slack", "heroku", "nodejs", "bolt", "bolt-js", "javascript"],
"logo": "https://raw.githubusercontent.com/slackapi/bolt-js/main/docs/assets/bolt-logo.svg",
"image": "heroku/nodejs",
"website": "https://slack.dev/bolt-js/",
"website": "https://tools.slack.dev/bolt-js/",
"repository": "https://github.com/slackapi/bolt-js",
"success_url": "/",
"env": {
Expand Down
7 changes: 2 additions & 5 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"files": {
"ignore": [
"docs/_site",
"examples/**/dist"
]
"ignore": ["docs/.docusaurus", "examples/**/dist"]
},
"formatter": {
"enabled": true,
Expand Down
2 changes: 1 addition & 1 deletion docs/content/concepts/assistant.md
Original file line number Diff line number Diff line change
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 [assistants reference docs](/reference#assistants) a look!
Be sure to give the [assistants reference docs](/reference#agents--assistants) a look!
:::

## Handling a new thread {#handling-new-thread}
Expand Down
2 changes: 1 addition & 1 deletion docs/content/concepts/authenticating-oauth.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ stored for later lookup. This happens in the terms of installation objects and
an installation store.

The following outlines installations to individual workspaces with more
[information on org-wide installations](#org-wide-installation) below.
[information on org-wide installations](#org-wide-installations) below.

#### Installation objects

Expand Down
2 changes: 1 addition & 1 deletion docs/content/deployments/aws-lambda.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ You're now set up with the Serverless tools! Let's move on to preparing your Bol

## Get a Bolt Slack app {#get-a-bolt-slack-app}

If you haven't already built your own Bolt app, you can use our [Getting Started guide](/getting-started or clone the template app below:
If you haven't already built your own Bolt app, you can use our [Getting Started guide](/getting-started) or clone the template app below:

```shell
git clone https://github.com/slackapi/bolt-js-getting-started-app.git
Expand Down
2 changes: 1 addition & 1 deletion docs/content/legacy/hubot-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ The [Events API](https://api.slack.com/bot-users#app-mentions-response) is a bot

:::info

Before you configure your bot’s events, you’ll need a public URL. If you’ve never created a Bolt for JavaScript app or never used the Events API, it’d be helpful to go through [setting up your local Bolt project](/getting-started) and [setting up events](https://tools.slack.dev/getting-started#setting-up-events) in the Getting Started guide.
Before you configure your bot’s events, you’ll need a public URL. If you’ve never created a Bolt for JavaScript app or never used the Events API, it’d be helpful to go through [setting up your local Bolt project](/getting-started) and [setting up events](/getting-started#setting-up-events) in the Getting Started guide.

:::

Expand Down
24 changes: 12 additions & 12 deletions docs/content/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Below is the current list of methods that accept listener functions. These metho
| `app.action(actionId, fn);` | Listens for an action event from a Block Kit element, such as a user interaction with a button, select menu, or datepicker. The `actionId` identifier is a `string` that should match the unique `action_id` included when your app sends the element to a view. Note that a view can be a message, modal, or app home. Note that action elements included in an `input` block do not trigger any events.
| `app.shortcut(callbackId, fn);` | Listens for global or message shortcut invocation. The `callbackId` is a `string` or `RegExp` that must match a shortcut `callback_id` specified within your app's configuration.
| `app.view(callbackId, fn);` | Listens for `view_submission` and `view_closed` events. `view_submission` events are sent when a user submits a modal that your app opened. `view_closed` events are sent when a user closes the modal rather than submits it.
| `app.step(workflowStep)` | Listen and responds to steps from apps events using the callbacks passed in an instance of `WorkflowStep`. Callbacks include three callbacks: `edit`, `save`, and `execute`. More information on steps from apps can be found [in the documentation](/concepts/steps-from-apps).
| `app.step(workflowStep)` | Listen and responds to steps from apps events using the callbacks passed in an instance of `WorkflowStep`. Callbacks include three callbacks: `edit`, `save`, and `execute`. More information on steps from apps can be found [in the documentation](/legacy/steps-from-apps).
| `app.command(commandName, fn);` | Listens for slash command invocations. The `commandName` is a `string` that must match a slash command specified in your app's configuration. Slash command names should be prefaced with a `/` (ex: `/helpdesk`).
| `app.options(actionId, fn);` | Listens for options requests (from select menus with an external data source). This isn't often used, and shouldn't be mistaken with `app.action`. The `actionId` identifier is a `string` that matches the unique `action_id` included when you app sends a [select with an external data source](https://api.slack.com/reference/block-kit/block-elements#external_select).

Expand All @@ -39,15 +39,15 @@ There are a collection of constraint objects that some methods have access to. T
### Listener function arguments
Listener functions have access to a set of arguments that may change based on the method which the function is passed to. Below is an explanation of the different arguments. The below table details the different arguments and the methods they'll be accessible in.

| Argument | Description |
| :--- | :--- |
| `payload` | All listeners | The unwrapped contents of the incoming event, which varies based on event. This is a subset of the information included in `body` which is detailed below. `payload` is also accessible via the alias corresponding to the method name that the listener is passed to (`message`, `event`, `action`, `shortcut`, `view`, `command`, `options`) **An easy way to understand what's in a payload is to log it**, or [use TypeScript](/tutorial/using-typescript). |
| `say` | `message`, `event`, `action` `command` | Function to send a message to the channel associated with the incoming event. This argument is only available when the listener is triggered for events that contain a channel ID (the most common being `message` events). `say` accepts simple strings (for plain-text messages) and objects (for messages containing blocks). `say` returns a promise that will resolve with a [`chat.postMessage` response](https://api.slack.com/methods/chat.postMessage). If you're using an the `action` method, or an event other than `message`, you should [ensure that the event payload contains a channel ID](https://api.slack.com/events).
| `ack` | `action`, `shortcut`, `view`, `command`, `options` | Function that **must** be called to acknowledge that an incoming event was received by your app. `ack` returns a promise that resolves when complete. Read more in [Acknowledging events](/concepts/acknowledging-events)
| `client` | All listeners | Web API client that uses the token associated with that event. For single-workspace installations, the token is provided to the constructor. For multi-workspace installations, the token is returned by the `authorize` function.
| `respond` | `action`, `shortcut`, `view`, `command` | Function that responds to an incoming event **if** it contains a `response_url`. `respond` returns a promise that resolves with the results of responding using the `response_url`. For shortcuts, `respond` will **only** work for message shortcuts (not global shortcuts). For views, `respond` will **only** work when using `response_url_enabled: true` for [conversations list](https://api.slack.com/reference/block-kit/block-elements#conversation_select) and [channels list](https://api.slack.com/reference/block-kit/block-elements#channel_select) select menus in input blocks in modals.
| `context` | All listeners | Event context. This object contains data about the event and the app, such as the `botId`. Middleware can add additional context before the event is passed to listeners.
| `body` | All listeners | Object that contains the entire body of the request (superset of `payload`). Some accessory data is only available outside of the payload (such as `trigger_id` and `authorizations`).
| Argument | Listener | Description |
| :--- | :--- | :--- |
| `payload` | All listeners | The unwrapped contents of the incoming event, which varies based on event. This is a subset of the information included in `body` which is detailed below. `payload` is also accessible via the alias corresponding to the method name that the listener is passed to (`message`, `event`, `action`, `shortcut`, `view`, `command`, `options`) **An easy way to understand what's in a payload is to log it**, or [use TypeScript](https://github.com/slackapi/bolt-js/tree/main/examples/getting-started-typescript). |
| `say` | `message`, `event`, `action` `command` | Function to send a message to the channel associated with the incoming event. This argument is only available when the listener is triggered for events that contain a channel ID (the most common being `message` events). `say` accepts simple strings (for plain-text messages) and objects (for messages containing blocks). `say` returns a promise that will resolve with a [`chat.postMessage` response](https://api.slack.com/methods/chat.postMessage). If you're using an the `action` method, or an event other than `message`, you should [ensure that the event payload contains a channel ID](https://api.slack.com/events). |
| `ack` | `action`, `shortcut`, `view`, `command`, `options` | Function that **must** be called to acknowledge that an incoming event was received by your app. `ack` returns a promise that resolves when complete. Read more in [Acknowledging requests](/concepts/acknowledge) |
| `client` | All listeners | Web API client that uses the token associated with that event. For single-workspace installations, the token is provided to the constructor. For multi-workspace installations, the token is returned by the `authorize` function. |
| `respond` | `action`, `shortcut`, `view`, `command` | Function that responds to an incoming event **if** it contains a `response_url`. `respond` returns a promise that resolves with the results of responding using the `response_url`. For shortcuts, `respond` will **only** work for message shortcuts (not global shortcuts). For views, `respond` will **only** work when using `response_url_enabled: true` for [conversations list](https://api.slack.com/reference/block-kit/block-elements#conversation_select) and [channels list](https://api.slack.com/reference/block-kit/block-elements#channel_select) select menus in input blocks in modals. |
| `context` | All listeners | Event context. This object contains data about the event and the app, such as the `botId`. Middleware can add additional context before the event is passed to listeners. |
| `body` | All listeners | Object that contains the entire body of the request (superset of `payload`). Some accessory data is only available outside of the payload (such as `trigger_id` and `authorizations`). |

#### Body and payload references
The structure of the `payload` and `body` is detailed on the API site:
Expand All @@ -74,7 +74,7 @@ app.message(matchMessage('hello'), async ({ message, logger }) => {
});
```

These middleware functions are divided into two groups: [global middleware functions](concepts/global-middleware) and [listener middleware functions](concepts/listener-middleware).
These middleware functions are divided into two groups: [global middleware functions](/concepts/global-middleware) and [listener middleware functions](/concepts/listener-middleware).

### Built-in global middleware functions

Expand Down Expand Up @@ -184,7 +184,7 @@ Bolt includes a set of error types to make errors easier to handle, with more sp
| `ReceiverMultipleAckError` | Error thrown within Receiver when your app calls `ack()` when that request has previously been acknowledged. Currently only used in the default `HTTPReceiver`. |
| `ReceiverAuthenticityError` | Error thrown when your app's request signature could not be verified. The error includes information on why it failed, such as an invalid timestamp, missing headers, or invalid signing secret.
| `MultipleListenerError` | Thrown when multiple errors occur when processing multiple listeners for a single event. Includes an `originals` property with an array of the individual errors. |
| `WorkflowStepInitializationError` | Error thrown when configuration options are invalid or missing when instantiating a new `WorkflowStep` instance. This could be scenarios like not including a `callback_id`, or not including a configuration object. More information on steps from apps [can be found in the documentation](/concepts/steps-from-apps). |
| `WorkflowStepInitializationError` | Error thrown when configuration options are invalid or missing when instantiating a new `WorkflowStep` instance. This could be scenarios like not including a `callback_id`, or not including a configuration object. More information on steps from apps [can be found in the documentation](/legacy/steps-from-apps). |
| `UnknownError` | An error that was thrown inside the framework but does not have a specified error code. Contains an `original` property with more details. |

:::info
Expand Down
2 changes: 1 addition & 1 deletion docs/content/tutorials/ai-assistant.md
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ This sample app uses Socket Mode to receive events. This is great for developing

### Learn more {#learn}

➡️ Read more about Bolt support for app assistants in the Agents & Assistants documentation [here](https://tools.slack.dev/bolt-js/concepts/assistant).
➡️ Read more about Bolt support for app assistants in the Agents & Assistants documentation [here](/concepts/assistant).

➡️ Level up your agent game after reading through the [Agents & Assistants usage guide](https://api.slack.com/docs/apps/ai) and [Best practices for developing app agents](https://api.slack.com/docs/apps/ai-best-practices).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ ngrok http 3000

:::tip

パブリック URL の作成方法と、ローカルマシンへのリクエストの転送方法については、[ngrok の使い方](https://tools.slack.dev/bolt-js/getting-started#setting-up-events)を参照してください。
パブリック URL の作成方法と、ローカルマシンへのリクエストの転送方法については、[ngrok の使い方](/getting-started#setting-up-events)を参照してください。

:::

Expand Down
Loading

0 comments on commit 65ada31

Please sign in to comment.