@slack/bolt 4.0.0-nextGen.9 → 4.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.d.ts +17 -42
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +53 -152
- package/dist/App.js.map +1 -1
- package/dist/WorkflowFunction.d.ts +63 -0
- package/dist/WorkflowFunction.d.ts.map +1 -0
- package/dist/WorkflowFunction.js +130 -0
- package/dist/WorkflowFunction.js.map +1 -0
- package/dist/errors.d.ts +1 -13
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -25
- package/dist/errors.js.map +1 -1
- package/dist/helpers.d.ts +15 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +40 -9
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/builtin.d.ts +2 -2
- package/dist/middleware/builtin.d.ts.map +1 -1
- package/dist/middleware/builtin.js +1 -0
- package/dist/middleware/builtin.js.map +1 -1
- package/dist/middleware/process.d.ts.map +1 -1
- package/dist/middleware/process.js.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.js +1 -1
- package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
- package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
- package/dist/receivers/ExpressReceiver.js +2 -2
- package/dist/receivers/ExpressReceiver.js.map +1 -1
- package/dist/receivers/HTTPModuleFunctions.d.ts +1 -1
- package/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -1
- package/dist/receivers/HTTPModuleFunctions.js +13 -1
- package/dist/receivers/HTTPModuleFunctions.js.map +1 -1
- package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
- package/dist/receivers/HTTPReceiver.js +11 -5
- package/dist/receivers/HTTPReceiver.js.map +1 -1
- package/dist/receivers/HTTPResponseAck.d.ts +1 -1
- package/dist/receivers/HTTPResponseAck.d.ts.map +1 -1
- package/dist/receivers/ParamsIncomingMessage.d.ts +14 -0
- package/dist/receivers/ParamsIncomingMessage.d.ts.map +1 -0
- package/dist/{types/block-suggestion/index.js → receivers/ParamsIncomingMessage.js} +1 -1
- package/dist/receivers/ParamsIncomingMessage.js.map +1 -0
- package/dist/receivers/SocketModeReceiver.d.ts +3 -2
- package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
- package/dist/receivers/SocketModeReceiver.js +13 -5
- package/dist/receivers/SocketModeReceiver.js.map +1 -1
- package/dist/receivers/custom-routes.d.ts +4 -3
- package/dist/receivers/custom-routes.d.ts.map +1 -1
- package/dist/receivers/custom-routes.js.map +1 -1
- package/dist/receivers/http-utils.d.ts.map +1 -1
- package/dist/receivers/http-utils.js.map +1 -1
- package/dist/receivers/verify-request.d.ts +1 -1
- package/dist/receivers/verify-request.d.ts.map +1 -1
- package/dist/receivers/verify-request.js +1 -1
- package/dist/receivers/verify-request.js.map +1 -1
- package/dist/types/actions/block-action.d.ts +27 -8
- package/dist/types/actions/block-action.d.ts.map +1 -1
- package/dist/types/actions/dialog-action.d.ts +0 -4
- package/dist/types/actions/dialog-action.d.ts.map +1 -1
- package/dist/types/events/base-events.d.ts +85 -33
- package/dist/types/events/base-events.d.ts.map +1 -1
- package/dist/types/events/base-events.js.map +1 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/middleware.d.ts +5 -17
- package/dist/types/middleware.d.ts.map +1 -1
- package/dist/types/middleware.js.map +1 -1
- package/dist/types/options/index.d.ts +9 -10
- package/dist/types/options/index.d.ts.map +1 -1
- package/dist/types/shortcuts/index.d.ts +1 -1
- package/dist/types/shortcuts/index.d.ts.map +1 -1
- package/dist/types/utilities.d.ts +9 -8
- package/dist/types/utilities.d.ts.map +1 -1
- package/dist/types/view/index.d.ts +134 -6
- package/dist/types/view/index.d.ts.map +1 -1
- package/package.json +14 -29
- package/dist/Manifest.d.ts +0 -5
- package/dist/Manifest.d.ts.map +0 -1
- package/dist/Manifest.js +0 -16
- package/dist/Manifest.js.map +0 -1
- package/dist/SlackFunction.d.ts +0 -190
- package/dist/SlackFunction.d.ts.map +0 -1
- package/dist/SlackFunction.js +0 -441
- package/dist/SlackFunction.js.map +0 -1
- package/dist/Subscription.d.ts +0 -61
- package/dist/Subscription.d.ts.map +0 -1
- package/dist/Subscription.js +0 -169
- package/dist/Subscription.js.map +0 -1
- package/dist/cli/check-update.d.ts +0 -3
- package/dist/cli/check-update.d.ts.map +0 -1
- package/dist/cli/check-update.js +0 -13
- package/dist/cli/check-update.js.map +0 -1
- package/dist/cli/get-hooks.d.ts +0 -2
- package/dist/cli/get-hooks.d.ts.map +0 -1
- package/dist/cli/get-hooks.js +0 -19
- package/dist/cli/get-hooks.js.map +0 -1
- package/dist/cli/get-manifest.d.ts +0 -3
- package/dist/cli/get-manifest.d.ts.map +0 -1
- package/dist/cli/get-manifest.js +0 -16
- package/dist/cli/get-manifest.js.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.d.ts +0 -49
- package/dist/cli/hook-utils/get-check-update-data.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.js +0 -252
- package/dist/cli/hook-utils/get-check-update-data.js.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.spec.d.ts +0 -2
- package/dist/cli/hook-utils/get-check-update-data.spec.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.spec.js +0 -266
- package/dist/cli/hook-utils/get-check-update-data.spec.js.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.d.ts +0 -7
- package/dist/cli/hook-utils/get-manifest-data.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.js +0 -30
- package/dist/cli/hook-utils/get-manifest-data.js.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.spec.d.ts +0 -2
- package/dist/cli/hook-utils/get-manifest-data.spec.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.spec.js +0 -113
- package/dist/cli/hook-utils/get-manifest-data.spec.js.map +0 -1
- package/dist/cli/hook-utils/manifest.d.ts +0 -30
- package/dist/cli/hook-utils/manifest.d.ts.map +0 -1
- package/dist/cli/hook-utils/manifest.js +0 -103
- package/dist/cli/hook-utils/manifest.js.map +0 -1
- package/dist/cli/hook-utils/manifest.spec.d.ts +0 -2
- package/dist/cli/hook-utils/manifest.spec.d.ts.map +0 -1
- package/dist/cli/hook-utils/manifest.spec.js +0 -79
- package/dist/cli/hook-utils/manifest.spec.js.map +0 -1
- package/dist/cli/run.d.ts +0 -2
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js +0 -37
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/start.d.ts +0 -3
- package/dist/cli/start.d.ts.map +0 -1
- package/dist/cli/start.js +0 -40
- package/dist/cli/start.js.map +0 -1
- package/dist/types/block-suggestion/index.d.ts +0 -97
- package/dist/types/block-suggestion/index.d.ts.map +0 -1
- package/dist/types/block-suggestion/index.js.map +0 -1
- package/dist/types/functions/index.d.ts +0 -26
- package/dist/types/functions/index.d.ts.map +0 -1
- package/dist/types/functions/index.js +0 -3
- package/dist/types/functions/index.js.map +0 -1
- package/dist/types/subscription/index.d.ts +0 -80
- package/dist/types/subscription/index.d.ts.map +0 -1
- package/dist/types/subscription/index.js +0 -3
- package/dist/types/subscription/index.js.map +0 -1
- package/src/cli/check-update.js +0 -13
- package/src/cli/get-hooks.js +0 -17
- package/src/cli/get-manifest.js +0 -16
- package/src/cli/hook-utils/get-check-update-data.js +0 -292
- package/src/cli/hook-utils/get-manifest-data.js +0 -39
- package/src/cli/hook-utils/manifest.js +0 -108
- package/src/cli/start.js +0 -43
package/dist/App.d.ts
CHANGED
|
@@ -8,9 +8,7 @@ import SocketModeReceiver from './receivers/SocketModeReceiver';
|
|
|
8
8
|
import HTTPReceiver, { HTTPReceiverOptions } from './receivers/HTTPReceiver';
|
|
9
9
|
import { ConversationStore } from './conversation-store';
|
|
10
10
|
import { WorkflowStep } from './WorkflowStep';
|
|
11
|
-
import {
|
|
12
|
-
import { SlackFunction } from './SlackFunction';
|
|
13
|
-
import { Middleware, AnyMiddlewareArgs, SlackActionMiddlewareArgs, SlackCommandMiddlewareArgs, SlackEventMiddlewareArgs, SlackOptionsMiddlewareArgs, SlackShortcutMiddlewareArgs, SlackViewMiddlewareArgs, SlackAction, SlackShortcut, Context, OptionsSource, BlockAction, SlackViewAction, Receiver, ReceiverEvent, SlackBlockSuggestion } from './types';
|
|
11
|
+
import { Middleware, AnyMiddlewareArgs, SlackActionMiddlewareArgs, SlackCommandMiddlewareArgs, SlackEventMiddlewareArgs, SlackOptionsMiddlewareArgs, SlackShortcutMiddlewareArgs, SlackViewMiddlewareArgs, SlackAction, SlackShortcut, Context, OptionsSource, BlockAction, SlackViewAction, Receiver, ReceiverEvent, SlackOptions } from './types';
|
|
14
12
|
import { CodedError } from './errors';
|
|
15
13
|
import { StringIndexed } from './types/helpers';
|
|
16
14
|
/** App initialization options */
|
|
@@ -66,6 +64,7 @@ export interface AuthorizeResult {
|
|
|
66
64
|
userToken?: string;
|
|
67
65
|
botId?: string;
|
|
68
66
|
botUserId?: string;
|
|
67
|
+
userId?: string;
|
|
69
68
|
teamId?: string;
|
|
70
69
|
enterpriseId?: string;
|
|
71
70
|
[key: string]: any;
|
|
@@ -78,6 +77,14 @@ export interface ActionConstraints<A extends SlackAction = SlackAction> {
|
|
|
78
77
|
callback_id?: string;
|
|
79
78
|
}> extends any ? string | RegExp : never;
|
|
80
79
|
}
|
|
80
|
+
export interface OptionsConstraints<A extends SlackOptions = SlackOptions> {
|
|
81
|
+
type?: A['type'];
|
|
82
|
+
block_id?: A extends SlackOptions ? string | RegExp : never;
|
|
83
|
+
action_id?: A extends SlackOptions ? string | RegExp : never;
|
|
84
|
+
callback_id?: Extract<A, {
|
|
85
|
+
callback_id?: string;
|
|
86
|
+
}> extends any ? string | RegExp : never;
|
|
87
|
+
}
|
|
81
88
|
export interface ShortcutConstraints<S extends SlackShortcut = SlackShortcut> {
|
|
82
89
|
type?: S['type'];
|
|
83
90
|
callback_id?: string | RegExp;
|
|
@@ -86,11 +93,6 @@ export interface ViewConstraints {
|
|
|
86
93
|
callback_id?: string | RegExp;
|
|
87
94
|
type?: 'view_closed' | 'view_submission';
|
|
88
95
|
}
|
|
89
|
-
export interface BlockSuggestionConstraints<B extends SlackBlockSuggestion = SlackBlockSuggestion> {
|
|
90
|
-
type?: B['type'];
|
|
91
|
-
block_id?: B extends SlackBlockSuggestion ? string | RegExp : never;
|
|
92
|
-
action_id?: B extends SlackBlockSuggestion ? string | RegExp : never;
|
|
93
|
-
}
|
|
94
96
|
interface AllErrorHandlerArgs {
|
|
95
97
|
error: Error;
|
|
96
98
|
logger: Logger;
|
|
@@ -149,43 +151,24 @@ export default class App<AppCustomContext extends StringIndexed = StringIndexed>
|
|
|
149
151
|
* @param m global middleware function
|
|
150
152
|
*/
|
|
151
153
|
use<MiddlewareCustomContext extends StringIndexed = StringIndexed>(m: Middleware<AnyMiddlewareArgs, AppCustomContext & MiddlewareCustomContext>): this;
|
|
152
|
-
/**
|
|
153
|
-
* Convenience method to call start on the receiver
|
|
154
|
-
*
|
|
155
|
-
* TODO: should replace HTTPReceiver in type definition with a generic that is constrained to Receiver
|
|
156
|
-
*
|
|
157
|
-
* @param args receiver-specific start arguments
|
|
158
|
-
*/
|
|
159
|
-
start(...args: Parameters<HTTPReceiver['start'] | SocketModeReceiver['start']>): ReturnType<HTTPReceiver['start']>;
|
|
160
|
-
stop(...args: any[]): Promise<unknown>;
|
|
161
154
|
/**
|
|
162
155
|
* Register WorkflowStep middleware
|
|
163
156
|
*
|
|
164
|
-
* Not to be confused with next-gen platform Workflows + Functions
|
|
165
|
-
*
|
|
166
157
|
* @param workflowStep global workflow step middleware function
|
|
167
158
|
*/
|
|
168
159
|
step(workflowStep: WorkflowStep): this;
|
|
169
160
|
/**
|
|
170
|
-
*
|
|
161
|
+
* Convenience method to call start on the receiver
|
|
162
|
+
*
|
|
163
|
+
* TODO: should replace HTTPReceiver in type definition with a generic that is constrained to Receiver
|
|
171
164
|
*
|
|
172
|
-
* @param
|
|
165
|
+
* @param args receiver-specific start arguments
|
|
173
166
|
*/
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
* Register an event listener
|
|
177
|
-
*/
|
|
167
|
+
start(...args: Parameters<HTTPReceiver['start'] | SocketModeReceiver['start']>): ReturnType<HTTPReceiver['start']>;
|
|
168
|
+
stop(...args: any[]): Promise<unknown>;
|
|
178
169
|
event<EventType extends string = string, MiddlewareCustomContext extends StringIndexed = StringIndexed>(eventName: EventType, ...listeners: Middleware<SlackEventMiddlewareArgs<EventType>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
179
170
|
event<EventType extends RegExp = RegExp, MiddlewareCustomContext extends StringIndexed = StringIndexed>(eventName: EventType, ...listeners: Middleware<SlackEventMiddlewareArgs<string>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
180
171
|
/**
|
|
181
|
-
* Register a Slack Function
|
|
182
|
-
*
|
|
183
|
-
* @param slackFn a main function to register
|
|
184
|
-
*
|
|
185
|
-
* */
|
|
186
|
-
function(slackFn: SlackFunction): void;
|
|
187
|
-
/**
|
|
188
|
-
* Process a message event
|
|
189
172
|
*
|
|
190
173
|
* @param listeners Middlewares that process and react to a message event
|
|
191
174
|
*/
|
|
@@ -220,25 +203,17 @@ export default class App<AppCustomContext extends StringIndexed = StringIndexed>
|
|
|
220
203
|
* @param patternsOrMiddleware A mix of patterns and/or middlewares.
|
|
221
204
|
*/
|
|
222
205
|
message<MiddlewareCustomContext extends StringIndexed = StringIndexed>(...patternsOrMiddleware: (string | RegExp | MessageEventMiddleware<AppCustomContext & MiddlewareCustomContext>)[]): void;
|
|
223
|
-
/**
|
|
224
|
-
* Process a shortcut event
|
|
225
|
-
*/
|
|
226
206
|
shortcut<Shortcut extends SlackShortcut = SlackShortcut, MiddlewareCustomContext extends StringIndexed = StringIndexed>(callbackId: string | RegExp, ...listeners: Middleware<SlackShortcutMiddlewareArgs<Shortcut>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
227
207
|
shortcut<Shortcut extends SlackShortcut = SlackShortcut, Constraints extends ShortcutConstraints<Shortcut> = ShortcutConstraints<Shortcut>, MiddlewareCustomContext extends StringIndexed = StringIndexed>(constraints: Constraints, ...listeners: Middleware<SlackShortcutMiddlewareArgs<Extract<Shortcut, {
|
|
228
208
|
type: Constraints['type'];
|
|
229
209
|
}>>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
230
|
-
/**
|
|
231
|
-
* Process a block_action event
|
|
232
|
-
* https://api.slack.com/reference/interaction-payloads/block-actions
|
|
233
|
-
*
|
|
234
|
-
*/
|
|
235
210
|
action<Action extends SlackAction = SlackAction, MiddlewareCustomContext extends StringIndexed = StringIndexed>(actionId: string | RegExp, ...listeners: Middleware<SlackActionMiddlewareArgs<Action>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
236
211
|
action<Action extends SlackAction = SlackAction, Constraints extends ActionConstraints<Action> = ActionConstraints<Action>, MiddlewareCustomContext extends StringIndexed = StringIndexed>(constraints: Constraints, ...listeners: Middleware<SlackActionMiddlewareArgs<Extract<Action, {
|
|
237
212
|
type: Constraints['type'];
|
|
238
213
|
}>>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
239
214
|
command<MiddlewareCustomContext extends StringIndexed = StringIndexed>(commandName: string | RegExp, ...listeners: Middleware<SlackCommandMiddlewareArgs, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
240
215
|
options<Source extends OptionsSource = 'block_suggestion', MiddlewareCustomContext extends StringIndexed = StringIndexed>(actionId: string | RegExp, ...listeners: Middleware<SlackOptionsMiddlewareArgs<Source>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
241
|
-
options<Source extends OptionsSource = OptionsSource, MiddlewareCustomContext extends StringIndexed = StringIndexed>(constraints:
|
|
216
|
+
options<Source extends OptionsSource = OptionsSource, MiddlewareCustomContext extends StringIndexed = StringIndexed>(constraints: OptionsConstraints, ...listeners: Middleware<SlackOptionsMiddlewareArgs<Source>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
242
217
|
view<ViewActionType extends SlackViewAction = SlackViewAction, MiddlewareCustomContext extends StringIndexed = StringIndexed>(callbackId: string | RegExp, ...listeners: Middleware<SlackViewMiddlewareArgs<ViewActionType>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
243
218
|
view<ViewActionType extends SlackViewAction = SlackViewAction, MiddlewareCustomContext extends StringIndexed = StringIndexed>(constraints: ViewConstraints, ...listeners: Middleware<SlackViewMiddlewareArgs<ViewActionType>, AppCustomContext & MiddlewareCustomContext>[]): void;
|
|
244
219
|
error(errorHandler: ErrorHandler): void;
|
package/dist/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,SAAS,EAA4C,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAEhE,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,YAAY,EAAE,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAe7E,OAAO,EAAE,iBAAiB,EAAoC,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
|
package/dist/App.js
CHANGED
|
@@ -13,7 +13,6 @@ const HTTPReceiver_1 = __importDefault(require("./receivers/HTTPReceiver"));
|
|
|
13
13
|
const builtin_1 = require("./middleware/builtin");
|
|
14
14
|
const process_1 = __importDefault(require("./middleware/process"));
|
|
15
15
|
const conversation_store_1 = require("./conversation-store");
|
|
16
|
-
const Subscription_1 = require("./Subscription");
|
|
17
16
|
const helpers_1 = require("./helpers");
|
|
18
17
|
const errors_1 = require("./errors");
|
|
19
18
|
const middleware_1 = require("./types/middleware");
|
|
@@ -22,10 +21,6 @@ const allSettled = require("promise.allsettled"); // eslint-disable-line @typesc
|
|
|
22
21
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, import/no-commonjs
|
|
23
22
|
const packageJson = require('../package.json'); // eslint-disable-line @typescript-eslint/no-var-requires
|
|
24
23
|
// ----------------------------
|
|
25
|
-
// For CLI local run use case
|
|
26
|
-
const cliAppTokenOverride = process.env.SLACK_CLI_XAPP;
|
|
27
|
-
const cliBotTokenOverride = process.env.SLACK_CLI_XOXB;
|
|
28
|
-
// ----------------------------
|
|
29
24
|
// For listener registration methods
|
|
30
25
|
const validViewTypes = ['view_closed', 'view_submission'];
|
|
31
26
|
// ----------------------------
|
|
@@ -57,7 +52,7 @@ class App {
|
|
|
57
52
|
this.clients = {};
|
|
58
53
|
/* ------------------------ Developer mode ----------------------------- */
|
|
59
54
|
this.developerMode = developerMode;
|
|
60
|
-
if (developerMode
|
|
55
|
+
if (developerMode) {
|
|
61
56
|
// Set logLevel to Debug in Developer Mode if one wasn't passed in
|
|
62
57
|
this.logLevel = logLevel !== null && logLevel !== void 0 ? logLevel : logger_1.LogLevel.DEBUG;
|
|
63
58
|
// Set SocketMode to true if one wasn't passed in
|
|
@@ -104,7 +99,7 @@ class App {
|
|
|
104
99
|
}
|
|
105
100
|
// The public WebClient instance (app.client)
|
|
106
101
|
// Since v3.4, it can have the passed token in the case of single workspace installation.
|
|
107
|
-
this.client = new web_api_1.WebClient(
|
|
102
|
+
this.client = new web_api_1.WebClient(token, this.clientOptions);
|
|
108
103
|
this.axios = axios_1.default.create({
|
|
109
104
|
httpAgent: agent,
|
|
110
105
|
httpsAgent: agent,
|
|
@@ -138,11 +133,11 @@ class App {
|
|
|
138
133
|
failure: (error, _installOptions, _req, res) => {
|
|
139
134
|
this.logger.debug(error);
|
|
140
135
|
res.writeHead(500, { 'Content-Type': 'text/html' });
|
|
141
|
-
res.end(`<html><body><h1>OAuth failed!</h1><div>${error}</div></body></html>`);
|
|
136
|
+
res.end(`<html><body><h1>OAuth failed!</h1><div>${escapeHtml(error.code)}</div></body></html>`);
|
|
142
137
|
},
|
|
143
138
|
};
|
|
144
139
|
}
|
|
145
|
-
this.receiver = this.initReceiver(receiver, signingSecret, endpoints, port, customRoutes, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes,
|
|
140
|
+
this.receiver = this.initReceiver(receiver, signingSecret, endpoints, port, customRoutes, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, appToken, logger);
|
|
146
141
|
/* ------------------------ Set authorize ----------------------------- */
|
|
147
142
|
this.tokenVerificationEnabled = tokenVerificationEnabled;
|
|
148
143
|
let argAuthorization;
|
|
@@ -153,15 +148,7 @@ class App {
|
|
|
153
148
|
botToken: token,
|
|
154
149
|
};
|
|
155
150
|
}
|
|
156
|
-
if (cliBotTokenOverride !== undefined) {
|
|
157
|
-
argAuthorization = {
|
|
158
|
-
botId,
|
|
159
|
-
botUserId,
|
|
160
|
-
botToken: cliBotTokenOverride,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
151
|
if (deferInitialization) {
|
|
164
|
-
// TODO: Deal with this
|
|
165
152
|
this.argToken = token;
|
|
166
153
|
this.argAuthorize = authorize;
|
|
167
154
|
this.argAuthorization = argAuthorization;
|
|
@@ -169,7 +156,7 @@ class App {
|
|
|
169
156
|
// You need to run `await app.init();` on your own
|
|
170
157
|
}
|
|
171
158
|
else {
|
|
172
|
-
this.authorize = this.initAuthorizeInConstructor(
|
|
159
|
+
this.authorize = this.initAuthorizeInConstructor(token, authorize, argAuthorization);
|
|
173
160
|
this.initialized = true;
|
|
174
161
|
}
|
|
175
162
|
// Conditionally use a global middleware that ignores events (including messages) that are sent from this app
|
|
@@ -229,6 +216,16 @@ class App {
|
|
|
229
216
|
this.middleware.push(m);
|
|
230
217
|
return this;
|
|
231
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Register WorkflowStep middleware
|
|
221
|
+
*
|
|
222
|
+
* @param workflowStep global workflow step middleware function
|
|
223
|
+
*/
|
|
224
|
+
step(workflowStep) {
|
|
225
|
+
const m = workflowStep.getMiddleware();
|
|
226
|
+
this.middleware.push(m);
|
|
227
|
+
return this;
|
|
228
|
+
}
|
|
232
229
|
/**
|
|
233
230
|
* Convenience method to call start on the receiver
|
|
234
231
|
*
|
|
@@ -247,34 +244,6 @@ class App {
|
|
|
247
244
|
stop(...args) {
|
|
248
245
|
return this.receiver.stop(...args);
|
|
249
246
|
}
|
|
250
|
-
/**
|
|
251
|
-
* Register WorkflowStep middleware
|
|
252
|
-
*
|
|
253
|
-
* Not to be confused with next-gen platform Workflows + Functions
|
|
254
|
-
*
|
|
255
|
-
* @param workflowStep global workflow step middleware function
|
|
256
|
-
*/
|
|
257
|
-
step(workflowStep) {
|
|
258
|
-
const m = workflowStep.getMiddleware();
|
|
259
|
-
this.middleware.push(m);
|
|
260
|
-
return this;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Process a subscription event
|
|
264
|
-
*
|
|
265
|
-
* @param listeners middleware that process and react to subscription payloads
|
|
266
|
-
*/
|
|
267
|
-
subscription(options) {
|
|
268
|
-
/*
|
|
269
|
-
* TODO If it becomes possible for users to set a custom unique resource id,
|
|
270
|
-
* custom id should be supplied in place of the default.
|
|
271
|
-
* */
|
|
272
|
-
const defaultId = 'DEFAULTID';
|
|
273
|
-
const s = new Subscription_1.Subscription(defaultId, options);
|
|
274
|
-
const m = s.getMiddleware();
|
|
275
|
-
this.middleware.push(m);
|
|
276
|
-
return this;
|
|
277
|
-
}
|
|
278
247
|
event(eventNameOrPattern, ...listeners) {
|
|
279
248
|
let invalidEventName = false;
|
|
280
249
|
if (typeof eventNameOrPattern === 'string') {
|
|
@@ -298,16 +267,6 @@ class App {
|
|
|
298
267
|
..._listeners,
|
|
299
268
|
]);
|
|
300
269
|
}
|
|
301
|
-
/**
|
|
302
|
-
* Register a Slack Function
|
|
303
|
-
*
|
|
304
|
-
* @param slackFn a main function to register
|
|
305
|
-
*
|
|
306
|
-
* */
|
|
307
|
-
function(slackFn) {
|
|
308
|
-
const m = slackFn.getMiddleware();
|
|
309
|
-
this.middleware.push(m);
|
|
310
|
-
}
|
|
311
270
|
message(...patternsOrMiddleware) {
|
|
312
271
|
const messageMiddleware = patternsOrMiddleware.map((patternOrMiddleware) => {
|
|
313
272
|
if (typeof patternOrMiddleware === 'string' || util_1.default.types.isRegExp(patternOrMiddleware)) {
|
|
@@ -366,7 +325,8 @@ class App {
|
|
|
366
325
|
}
|
|
367
326
|
// TODO: reflect the type in constraints to Source
|
|
368
327
|
options(actionIdOrConstraints, ...listeners) {
|
|
369
|
-
const constraints = typeof actionIdOrConstraints === 'string' ||
|
|
328
|
+
const constraints = typeof actionIdOrConstraints === 'string' ||
|
|
329
|
+
util_1.default.types.isRegExp(actionIdOrConstraints) ?
|
|
370
330
|
{ action_id: actionIdOrConstraints } :
|
|
371
331
|
actionIdOrConstraints;
|
|
372
332
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -422,11 +382,10 @@ class App {
|
|
|
422
382
|
// From this point on, we assume that body is not just a key-value map, but one of the types of bodies we expect
|
|
423
383
|
const bodyArg = body;
|
|
424
384
|
// Check if type event with the authorizations object or if it has a top level is_enterprise_install property
|
|
425
|
-
const isEnterpriseInstall = isBodyWithTypeEnterpriseInstall(bodyArg, type);
|
|
385
|
+
const isEnterpriseInstall = (0, helpers_1.isBodyWithTypeEnterpriseInstall)(bodyArg, type);
|
|
426
386
|
const source = buildSource(type, conversationId, bodyArg, isEnterpriseInstall);
|
|
427
|
-
// Get the result of any custom authorize provided
|
|
428
387
|
let authorizeResult;
|
|
429
|
-
if (type === helpers_1.IncomingEventType.Event && isEventTypeToSkipAuthorize(event
|
|
388
|
+
if (type === helpers_1.IncomingEventType.Event && (0, helpers_1.isEventTypeToSkipAuthorize)(event)) {
|
|
430
389
|
authorizeResult = {
|
|
431
390
|
enterpriseId: source.enterpriseId,
|
|
432
391
|
teamId: source.teamId,
|
|
@@ -453,6 +412,10 @@ class App {
|
|
|
453
412
|
});
|
|
454
413
|
}
|
|
455
414
|
}
|
|
415
|
+
// Try to set userId from AuthorizeResult before using one from source
|
|
416
|
+
if (authorizeResult.userId === undefined && source.userId !== undefined) {
|
|
417
|
+
authorizeResult.userId = source.userId;
|
|
418
|
+
}
|
|
456
419
|
// Try to set teamId from AuthorizeResult before using one from source
|
|
457
420
|
if (authorizeResult.teamId === undefined && source.teamId !== undefined) {
|
|
458
421
|
authorizeResult.teamId = source.teamId;
|
|
@@ -461,7 +424,6 @@ class App {
|
|
|
461
424
|
if (authorizeResult.enterpriseId === undefined && source.enterpriseId !== undefined) {
|
|
462
425
|
authorizeResult.enterpriseId = source.enterpriseId;
|
|
463
426
|
}
|
|
464
|
-
// Try to set custom properties if they exist
|
|
465
427
|
if (typeof event.customProperties !== 'undefined') {
|
|
466
428
|
const customProps = event.customProperties;
|
|
467
429
|
const builtinKeyDetected = middleware_1.contextBuiltinKeys.find((key) => key in customProps);
|
|
@@ -469,33 +431,9 @@ class App {
|
|
|
469
431
|
throw new errors_1.InvalidCustomPropertyError('customProperties cannot have the same names with the built-in ones');
|
|
470
432
|
}
|
|
471
433
|
}
|
|
472
|
-
/**
|
|
473
|
-
* Set the Slack Function Bot Access Token if it exists in event payload to the context.
|
|
474
|
-
*
|
|
475
|
-
* A bot_access_token will exist in any payload that has been generated
|
|
476
|
-
* in the context of a Slack Function execution. This includes function_execution
|
|
477
|
-
* events themselves, as well as interactivity payloads (e.g. block_actions, views).
|
|
478
|
-
*
|
|
479
|
-
* This token must be used for further Slack API calls which are relevant to this
|
|
480
|
-
* Slack Function execution in order for any interactivity context data to be
|
|
481
|
-
* properly sent by Slack.
|
|
482
|
-
*
|
|
483
|
-
* Bolt will set this value in the event Context and
|
|
484
|
-
* use this token in place of any other token (for example the token
|
|
485
|
-
* that the App was configured with) to initialize the Web Client.
|
|
486
|
-
*
|
|
487
|
-
* Sometimes the bot_access_token is located in the event
|
|
488
|
-
* Sometimes it is located directly in the body.
|
|
489
|
-
*/
|
|
490
|
-
let slackFunctionBotAccessToken = body.bot_access_token;
|
|
491
|
-
if (slackFunctionBotAccessToken === undefined && 'event' in body) {
|
|
492
|
-
slackFunctionBotAccessToken = body.event.bot_access_token;
|
|
493
|
-
}
|
|
494
|
-
// Declare the event context
|
|
495
434
|
const context = {
|
|
496
435
|
...authorizeResult,
|
|
497
436
|
...event.customProperties,
|
|
498
|
-
slackFunctionBotAccessToken,
|
|
499
437
|
isEnterpriseInstall,
|
|
500
438
|
retryNum: event.retryNum,
|
|
501
439
|
retryReason: event.retryReason,
|
|
@@ -536,6 +474,8 @@ class App {
|
|
|
536
474
|
payload = bodyArg;
|
|
537
475
|
break;
|
|
538
476
|
}
|
|
477
|
+
// NOTE: the following doesn't work because... distributive?
|
|
478
|
+
// const listenerArgs: Partial<AnyMiddlewareArgs> = {
|
|
539
479
|
const listenerArgs = {
|
|
540
480
|
body: bodyArg,
|
|
541
481
|
payload,
|
|
@@ -589,7 +529,7 @@ class App {
|
|
|
589
529
|
// Events API requests are acknowledged right away, since there's no data expected
|
|
590
530
|
await ack();
|
|
591
531
|
}
|
|
592
|
-
// Get
|
|
532
|
+
// Get the client arg
|
|
593
533
|
let { client } = this;
|
|
594
534
|
const token = selectToken(context);
|
|
595
535
|
if (token !== undefined) {
|
|
@@ -677,35 +617,29 @@ class App {
|
|
|
677
617
|
initReceiver(receiver, signingSecret, endpoints, port, customRoutes, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, appToken, logger) {
|
|
678
618
|
if (receiver !== undefined) {
|
|
679
619
|
// Custom receiver supplied
|
|
680
|
-
if (this.socketMode === true) {
|
|
681
|
-
// socketMode = true should result in SocketModeReceiver being used as receiver
|
|
682
|
-
// TODO: Add case for when socketMode = true and receiver = SocketModeReceiver
|
|
683
|
-
// as this should not result in an error
|
|
620
|
+
if (this.socketMode === true && !(receiver instanceof SocketModeReceiver_1.default)) {
|
|
684
621
|
throw new errors_1.AppInitializationError('You cannot supply a custom receiver when socketMode is set to true.');
|
|
685
622
|
}
|
|
686
623
|
return receiver;
|
|
687
624
|
}
|
|
688
625
|
if (this.socketMode === true) {
|
|
689
|
-
if (
|
|
626
|
+
if (appToken === undefined) {
|
|
690
627
|
throw new errors_1.AppInitializationError('You must provide an appToken when socketMode is set to true. To generate an appToken see: https://api.slack.com/apis/connections/socket#token');
|
|
691
628
|
}
|
|
692
629
|
this.logger.debug('Initializing SocketModeReceiver');
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
customRoutes,
|
|
707
|
-
});
|
|
708
|
-
}
|
|
630
|
+
return new SocketModeReceiver_1.default({
|
|
631
|
+
appToken,
|
|
632
|
+
clientId,
|
|
633
|
+
clientSecret,
|
|
634
|
+
stateSecret,
|
|
635
|
+
redirectUri,
|
|
636
|
+
installationStore,
|
|
637
|
+
scopes,
|
|
638
|
+
logger,
|
|
639
|
+
logLevel: this.logLevel,
|
|
640
|
+
installerOptions: this.installerOptions,
|
|
641
|
+
customRoutes,
|
|
642
|
+
});
|
|
709
643
|
}
|
|
710
644
|
if (signatureVerification === true && signingSecret === undefined) {
|
|
711
645
|
// Using default receiver HTTPReceiver, signature verification enabled, missing signingSecret
|
|
@@ -832,10 +766,6 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
|
|
|
832
766
|
if (type === helpers_1.IncomingEventType.Command) {
|
|
833
767
|
return body.team_id;
|
|
834
768
|
}
|
|
835
|
-
if (type === helpers_1.IncomingEventType.Subscription) {
|
|
836
|
-
const bodyAsSubscriptionInteraction = body;
|
|
837
|
-
return bodyAsSubscriptionInteraction.team.id;
|
|
838
|
-
}
|
|
839
769
|
const parseTeamId = (bodyAs) => {
|
|
840
770
|
// When the app is installed using org-wide deployment, team property will be null
|
|
841
771
|
if (typeof bodyAs.team !== 'undefined' && bodyAs.team !== null) {
|
|
@@ -874,10 +804,6 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
|
|
|
874
804
|
if (type === helpers_1.IncomingEventType.Command) {
|
|
875
805
|
return body.enterprise_id;
|
|
876
806
|
}
|
|
877
|
-
if (type === helpers_1.IncomingEventType.Subscription) {
|
|
878
|
-
const bodyAsSubscriptionInteraction = body;
|
|
879
|
-
return bodyAsSubscriptionInteraction.team.enterprise_id;
|
|
880
|
-
}
|
|
881
807
|
if (type === helpers_1.IncomingEventType.Action ||
|
|
882
808
|
type === helpers_1.IncomingEventType.Options ||
|
|
883
809
|
type === helpers_1.IncomingEventType.ViewAction ||
|
|
@@ -917,10 +843,6 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
|
|
|
917
843
|
}
|
|
918
844
|
return undefined;
|
|
919
845
|
}
|
|
920
|
-
if (type === helpers_1.IncomingEventType.Subscription) {
|
|
921
|
-
const bodyAsSubscriptionInteraction = body;
|
|
922
|
-
return bodyAsSubscriptionInteraction.user.id;
|
|
923
|
-
}
|
|
924
846
|
if (type === helpers_1.IncomingEventType.Action ||
|
|
925
847
|
type === helpers_1.IncomingEventType.Options ||
|
|
926
848
|
type === helpers_1.IncomingEventType.ViewAction ||
|
|
@@ -942,50 +864,29 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
|
|
|
942
864
|
conversationId: channelId,
|
|
943
865
|
};
|
|
944
866
|
}
|
|
945
|
-
function isBodyWithTypeEnterpriseInstall(body, type) {
|
|
946
|
-
if (type === helpers_1.IncomingEventType.Event) {
|
|
947
|
-
const bodyAsEvent = body;
|
|
948
|
-
if (Array.isArray(bodyAsEvent.authorizations) && bodyAsEvent.authorizations[0] !== undefined) {
|
|
949
|
-
return !!bodyAsEvent.authorizations[0].is_enterprise_install;
|
|
950
|
-
}
|
|
951
|
-
}
|
|
952
|
-
if (type === helpers_1.IncomingEventType.Subscription) {
|
|
953
|
-
return body.team.enterprise_id !== undefined;
|
|
954
|
-
}
|
|
955
|
-
if ('is_enterprise_install' in body) {
|
|
956
|
-
// command payloads have this property set as a string
|
|
957
|
-
if (typeof body.is_enterprise_install === 'string') {
|
|
958
|
-
return body.is_enterprise_install === 'true';
|
|
959
|
-
}
|
|
960
|
-
// all remaining types have a boolean property
|
|
961
|
-
if (body.is_enterprise_install !== undefined) {
|
|
962
|
-
return body.is_enterprise_install;
|
|
963
|
-
}
|
|
964
|
-
}
|
|
965
|
-
// as a fallback we assume it's a single team installation (but this should never happen)
|
|
966
|
-
return false;
|
|
967
|
-
}
|
|
968
867
|
function isBlockActionOrInteractiveMessageBody(body) {
|
|
969
868
|
return body.actions !== undefined;
|
|
970
869
|
}
|
|
971
|
-
|
|
972
|
-
* Returns in order of preference, a bot token, bot access token or user token for client, say()
|
|
973
|
-
* */
|
|
870
|
+
// Returns either a bot token or a user token for client, say()
|
|
974
871
|
function selectToken(context) {
|
|
975
|
-
|
|
976
|
-
return (_b = (_a = context.slackFunctionBotAccessToken) !== null && _a !== void 0 ? _a : context.botToken) !== null && _b !== void 0 ? _b : context.userToken;
|
|
872
|
+
return context.botToken !== undefined ? context.botToken : context.userToken;
|
|
977
873
|
}
|
|
978
874
|
function buildRespondFn(axiosInstance, responseUrl) {
|
|
979
875
|
return async (message) => {
|
|
876
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
980
877
|
const normalizedArgs = typeof message === 'string' ? { text: message } : message;
|
|
981
878
|
return axiosInstance.post(responseUrl, normalizedArgs);
|
|
982
879
|
};
|
|
983
880
|
}
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
881
|
+
function escapeHtml(input) {
|
|
882
|
+
if (input) {
|
|
883
|
+
return input.replace(/&/g, '&')
|
|
884
|
+
.replace(/</g, '<')
|
|
885
|
+
.replace(/>/g, '>')
|
|
886
|
+
.replace(/"/g, '"')
|
|
887
|
+
.replace(/'/g, ''');
|
|
888
|
+
}
|
|
889
|
+
return '';
|
|
989
890
|
}
|
|
990
891
|
// ----------------------------
|
|
991
892
|
// Instrumentation
|