@slack/bolt 3.10.0 → 3.11.2
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.map +1 -1
- package/dist/App.js +24 -7
- package/dist/App.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/builtin.d.ts.map +1 -1
- package/dist/middleware/builtin.js +18 -6
- package/dist/middleware/builtin.js.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.js +4 -1
- package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
- package/dist/receivers/BufferedIncomingMessage.d.ts +6 -0
- package/dist/receivers/BufferedIncomingMessage.d.ts.map +1 -0
- package/dist/receivers/BufferedIncomingMessage.js +3 -0
- package/dist/receivers/BufferedIncomingMessage.js.map +1 -0
- package/dist/receivers/ExpressReceiver.d.ts +20 -6
- package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
- package/dist/receivers/ExpressReceiver.js +68 -84
- package/dist/receivers/ExpressReceiver.js.map +1 -1
- package/dist/receivers/HTTPModuleFunctions.d.ts +47 -0
- package/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -0
- package/dist/receivers/HTTPModuleFunctions.js +197 -0
- package/dist/receivers/HTTPModuleFunctions.js.map +1 -0
- package/dist/receivers/HTTPReceiver.d.ts +14 -32
- package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
- package/dist/receivers/HTTPReceiver.js +44 -179
- package/dist/receivers/HTTPReceiver.js.map +1 -1
- package/dist/receivers/HTTPResponseAck.d.ts +30 -0
- package/dist/receivers/HTTPResponseAck.d.ts.map +1 -0
- package/dist/receivers/HTTPResponseAck.js +64 -0
- package/dist/receivers/HTTPResponseAck.js.map +1 -0
- package/dist/receivers/SocketModeFunctions.d.ts +12 -0
- package/dist/receivers/SocketModeFunctions.d.ts.map +1 -0
- package/dist/receivers/SocketModeFunctions.js +28 -0
- package/dist/receivers/SocketModeFunctions.js.map +1 -0
- package/dist/receivers/SocketModeReceiver.d.ts +10 -3
- package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
- package/dist/receivers/SocketModeReceiver.js +29 -37
- package/dist/receivers/SocketModeReceiver.js.map +1 -1
- package/dist/receivers/custom-routes.d.ts +1 -1
- package/dist/receivers/custom-routes.d.ts.map +1 -1
- package/dist/receivers/custom-routes.js +3 -3
- 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 +9 -25
- package/dist/receivers/http-utils.js.map +1 -1
- package/dist/receivers/render-html-for-install-path.d.ts.map +1 -1
- package/dist/receivers/render-html-for-install-path.js +7 -0
- package/dist/receivers/render-html-for-install-path.js.map +1 -1
- package/dist/receivers/verify-request.d.ts +25 -33
- package/dist/receivers/verify-request.d.ts.map +1 -1
- package/dist/receivers/verify-request.js +41 -61
- package/dist/receivers/verify-request.js.map +1 -1
- package/dist/types/events/base-events.d.ts +296 -10
- package/dist/types/events/base-events.d.ts.map +1 -1
- package/dist/types/events/base-events.js.map +1 -1
- package/dist/types/events/index.d.ts +2 -1
- package/dist/types/events/index.d.ts.map +1 -1
- package/dist/types/view/index.d.ts +12 -6
- package/dist/types/view/index.d.ts.map +1 -1
- package/package.json +9 -6
- package/CHANGELOG.md +0 -5
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
import { Server, ServerOptions } from 'http';
|
|
3
3
|
import { Server as HTTPSServer, ServerOptions as HTTPSServerOptions } from 'https';
|
|
4
4
|
import { ListenOptions } from 'net';
|
|
5
|
-
import { Request, Application, RequestHandler, IRouter } from 'express';
|
|
5
|
+
import { Request, Response, Application, RequestHandler, IRouter } from 'express';
|
|
6
6
|
import { Logger, LogLevel } from '@slack/logger';
|
|
7
|
-
import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions } from '@slack/oauth';
|
|
7
|
+
import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions, InstallPathOptions } from '@slack/oauth';
|
|
8
8
|
import App from '../App';
|
|
9
9
|
import { AnyMiddlewareArgs, Receiver } from '../types';
|
|
10
10
|
import { StringIndexed } from '../types/helpers';
|
|
11
|
+
import { ReceiverDispatchErrorHandlerArgs, ReceiverProcessEventErrorHandlerArgs, ReceiverUnhandledRequestHandlerArgs } from './HTTPModuleFunctions';
|
|
11
12
|
export declare const respondToSslCheck: RequestHandler;
|
|
12
13
|
export declare const respondToUrlVerification: RequestHandler;
|
|
13
14
|
export interface ExpressReceiverOptions {
|
|
@@ -29,16 +30,24 @@ export interface ExpressReceiverOptions {
|
|
|
29
30
|
app?: Application;
|
|
30
31
|
router?: IRouter;
|
|
31
32
|
customPropertiesExtractor?: (request: Request) => StringIndexed;
|
|
33
|
+
dispatchErrorHandler?: (args: ReceiverDispatchErrorHandlerArgs) => Promise<void>;
|
|
34
|
+
processEventErrorHandler?: (args: ReceiverProcessEventErrorHandlerArgs) => Promise<boolean>;
|
|
35
|
+
unhandledRequestHandler?: (args: ReceiverUnhandledRequestHandlerArgs) => void;
|
|
36
|
+
unhandledRequestTimeoutMillis?: number;
|
|
32
37
|
}
|
|
33
38
|
interface InstallerOptions {
|
|
34
39
|
stateStore?: InstallProviderOptions['stateStore'];
|
|
35
40
|
stateVerification?: InstallProviderOptions['stateVerification'];
|
|
41
|
+
legacyStateVerification?: InstallProviderOptions['legacyStateVerification'];
|
|
42
|
+
stateCookieName?: InstallProviderOptions['stateCookieName'];
|
|
43
|
+
stateCookieExpirationSeconds?: InstallProviderOptions['stateCookieExpirationSeconds'];
|
|
36
44
|
authVersion?: InstallProviderOptions['authVersion'];
|
|
37
45
|
metadata?: InstallURLOptions['metadata'];
|
|
38
46
|
installPath?: string;
|
|
39
|
-
directInstall?:
|
|
40
|
-
renderHtmlForInstallPath?:
|
|
47
|
+
directInstall?: InstallProviderOptions['directInstall'];
|
|
48
|
+
renderHtmlForInstallPath?: InstallProviderOptions['renderHtmlForInstallPath'];
|
|
41
49
|
redirectUriPath?: string;
|
|
50
|
+
installPathOptions?: InstallPathOptions;
|
|
42
51
|
callbackOptions?: CallbackOptions;
|
|
43
52
|
userScopes?: InstallURLOptions['userScopes'];
|
|
44
53
|
clientOptions?: InstallProviderOptions['clientOptions'];
|
|
@@ -58,8 +67,12 @@ export default class ExpressReceiver implements Receiver {
|
|
|
58
67
|
installer: InstallProvider | undefined;
|
|
59
68
|
installerOptions?: InstallerOptions;
|
|
60
69
|
private customPropertiesExtractor;
|
|
61
|
-
|
|
62
|
-
private
|
|
70
|
+
private dispatchErrorHandler;
|
|
71
|
+
private processEventErrorHandler;
|
|
72
|
+
private unhandledRequestHandler;
|
|
73
|
+
private unhandledRequestTimeoutMillis;
|
|
74
|
+
constructor({ signingSecret, logger, logLevel, endpoints, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, app, router, customPropertiesExtractor, dispatchErrorHandler, processEventErrorHandler, unhandledRequestHandler, unhandledRequestTimeoutMillis, }: ExpressReceiverOptions);
|
|
75
|
+
requestHandler(req: Request, res: Response): Promise<void>;
|
|
63
76
|
init(bolt: App): void;
|
|
64
77
|
start(port: number): Promise<Server>;
|
|
65
78
|
start(portOrListenOptions: number | ListenOptions, serverOptions?: ServerOptions): Promise<Server>;
|
|
@@ -73,5 +86,6 @@ export declare function verifySignatureAndParseRawBody(logger: Logger, signingSe
|
|
|
73
86
|
* - Parse request.body and assign the successfully parsed object to it.
|
|
74
87
|
*/
|
|
75
88
|
export declare function verifySignatureAndParseBody(signingSecret: string, body: string, headers: Record<string, any>): AnyMiddlewareArgs['body'];
|
|
89
|
+
export declare function buildBodyParserMiddleware(logger: Logger): RequestHandler;
|
|
76
90
|
export {};
|
|
77
91
|
//# sourceMappingURL=ExpressReceiver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":";AACA,OAAO,EAAgB,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC3D,OAAO,EAAqC,MAAM,IAAI,WAAW,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACtH,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAgB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ExpressReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.verifySignatureAndParseBody = exports.verifySignatureAndParseRawBody = exports.respondToUrlVerification = exports.respondToSslCheck = void 0;
|
|
25
|
+
exports.buildBodyParserMiddleware = exports.verifySignatureAndParseBody = exports.verifySignatureAndParseRawBody = exports.respondToUrlVerification = exports.respondToSslCheck = void 0;
|
|
26
26
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
27
27
|
const http_1 = require("http");
|
|
28
28
|
const https_1 = require("https");
|
|
@@ -34,9 +34,9 @@ const tsscmp_1 = __importDefault(require("tsscmp"));
|
|
|
34
34
|
const logger_1 = require("@slack/logger");
|
|
35
35
|
const oauth_1 = require("@slack/oauth");
|
|
36
36
|
const errors_1 = require("../errors");
|
|
37
|
-
const render_html_for_install_path_1 = __importDefault(require("./render-html-for-install-path"));
|
|
38
37
|
const verify_redirect_opts_1 = require("./verify-redirect-opts");
|
|
39
|
-
const
|
|
38
|
+
const HTTPModuleFunctions_1 = require("./HTTPModuleFunctions");
|
|
39
|
+
const HTTPResponseAck_1 = require("./HTTPResponseAck");
|
|
40
40
|
// Option keys for tls.createServer() and tls.createSecureContext(), exclusive of those for http.createServer()
|
|
41
41
|
const httpsOptionKeys = [
|
|
42
42
|
'ALPNProtocols',
|
|
@@ -91,7 +91,7 @@ exports.respondToUrlVerification = respondToUrlVerification;
|
|
|
91
91
|
* Receives HTTP requests with Events, Slash Commands, and Actions
|
|
92
92
|
*/
|
|
93
93
|
class ExpressReceiver {
|
|
94
|
-
constructor({ signingSecret = '', logger = undefined, logLevel = logger_1.LogLevel.INFO, endpoints = { events: '/slack/events' }, processBeforeResponse = false, signatureVerification = true, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, app = undefined, router = undefined, customPropertiesExtractor = (_req) => ({}), }) {
|
|
94
|
+
constructor({ signingSecret = '', logger = undefined, logLevel = logger_1.LogLevel.INFO, endpoints = { events: '/slack/events' }, processBeforeResponse = false, signatureVerification = true, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, app = undefined, router = undefined, customPropertiesExtractor = (_req) => ({}), dispatchErrorHandler = HTTPModuleFunctions_1.HTTPModuleFunctions.defaultAsyncDispatchErrorHandler, processEventErrorHandler = HTTPModuleFunctions_1.HTTPModuleFunctions.defaultProcessEventErrorHandler, unhandledRequestHandler = HTTPModuleFunctions_1.HTTPModuleFunctions.defaultUnhandledRequestHandler, unhandledRequestTimeoutMillis = 3001, }) {
|
|
95
95
|
var _a;
|
|
96
96
|
this.installer = undefined;
|
|
97
97
|
this.app = app !== undefined ? app : (0, express_1.default)();
|
|
@@ -119,6 +119,10 @@ class ExpressReceiver {
|
|
|
119
119
|
this.router.post(endpoint, ...expressMiddleware);
|
|
120
120
|
});
|
|
121
121
|
this.customPropertiesExtractor = customPropertiesExtractor;
|
|
122
|
+
this.dispatchErrorHandler = dispatchErrorHandler;
|
|
123
|
+
this.processEventErrorHandler = processEventErrorHandler;
|
|
124
|
+
this.unhandledRequestHandler = unhandledRequestHandler;
|
|
125
|
+
this.unhandledRequestTimeoutMillis = unhandledRequestTimeoutMillis;
|
|
122
126
|
// Verify redirect options if supplied, throws coded error if invalid
|
|
123
127
|
(0, verify_redirect_opts_1.verifyRedirectOpts)({ redirectUri, redirectUriPath: installerOptions.redirectUriPath });
|
|
124
128
|
if (clientId !== undefined &&
|
|
@@ -134,8 +138,13 @@ class ExpressReceiver {
|
|
|
134
138
|
installationStore,
|
|
135
139
|
logLevel,
|
|
136
140
|
logger,
|
|
141
|
+
directInstall: installerOptions.directInstall,
|
|
137
142
|
stateStore: installerOptions.stateStore,
|
|
138
143
|
stateVerification: installerOptions.stateVerification,
|
|
144
|
+
legacyStateVerification: installerOptions.legacyStateVerification,
|
|
145
|
+
stateCookieName: installerOptions.stateCookieName,
|
|
146
|
+
stateCookieExpirationSeconds: installerOptions.stateCookieExpirationSeconds,
|
|
147
|
+
renderHtmlForInstallPath: installerOptions.renderHtmlForInstallPath,
|
|
139
148
|
authVersion: (_a = installerOptions.authVersion) !== null && _a !== void 0 ? _a : 'v2',
|
|
140
149
|
clientOptions: installerOptions.clientOptions,
|
|
141
150
|
authorizationUrl: installerOptions.authorizationUrl,
|
|
@@ -150,43 +159,49 @@ class ExpressReceiver {
|
|
|
150
159
|
};
|
|
151
160
|
// Add OAuth routes to receiver
|
|
152
161
|
if (this.installer !== undefined) {
|
|
162
|
+
const { installer } = this;
|
|
153
163
|
const redirectUriPath = installerOptions.redirectUriPath === undefined ?
|
|
154
164
|
'/slack/oauth_redirect' :
|
|
155
165
|
installerOptions.redirectUriPath;
|
|
156
166
|
const { callbackOptions, stateVerification } = installerOptions;
|
|
157
167
|
this.router.use(redirectUriPath, async (req, res) => {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
168
|
+
try {
|
|
169
|
+
if (stateVerification === false) {
|
|
170
|
+
// when stateVerification is disabled pass install options directly to handler
|
|
171
|
+
// since they won't be encoded in the state param of the generated url
|
|
172
|
+
await installer.handleCallback(req, res, callbackOptions, installUrlOptions);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
await installer.handleCallback(req, res, callbackOptions);
|
|
176
|
+
}
|
|
163
177
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
178
|
+
catch (e) {
|
|
179
|
+
await this.dispatchErrorHandler({
|
|
180
|
+
error: e,
|
|
181
|
+
logger: this.logger,
|
|
182
|
+
request: req,
|
|
183
|
+
response: res,
|
|
184
|
+
});
|
|
167
185
|
}
|
|
168
186
|
});
|
|
169
187
|
const installPath = installerOptions.installPath === undefined ? '/slack/install' : installerOptions.installPath;
|
|
170
|
-
|
|
188
|
+
const { installPathOptions } = installerOptions;
|
|
189
|
+
this.router.get(installPath, async (req, res, next) => {
|
|
171
190
|
try {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
if (installerOptions.directInstall) {
|
|
175
|
-
// If a Slack app sets "Direct Install URL" in the Slack app configuration,
|
|
176
|
-
// the installation flow of the app should start with the Slack authorize URL.
|
|
177
|
-
// See https://api.slack.com/start/distributing/directory#direct_install for more details.
|
|
178
|
-
res.redirect(url);
|
|
191
|
+
try {
|
|
192
|
+
await installer.handleInstallPath(req, res, installPathOptions, installUrlOptions);
|
|
179
193
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
const renderHtml = installerOptions.renderHtmlForInstallPath !== undefined ?
|
|
183
|
-
installerOptions.renderHtmlForInstallPath :
|
|
184
|
-
render_html_for_install_path_1.default;
|
|
185
|
-
res.send(renderHtml(url));
|
|
194
|
+
catch (error) {
|
|
195
|
+
next(error);
|
|
186
196
|
}
|
|
187
197
|
}
|
|
188
|
-
catch (
|
|
189
|
-
|
|
198
|
+
catch (e) {
|
|
199
|
+
await this.dispatchErrorHandler({
|
|
200
|
+
error: e,
|
|
201
|
+
logger: this.logger,
|
|
202
|
+
request: req,
|
|
203
|
+
response: res,
|
|
204
|
+
});
|
|
190
205
|
}
|
|
191
206
|
});
|
|
192
207
|
}
|
|
@@ -194,73 +209,41 @@ class ExpressReceiver {
|
|
|
194
209
|
}
|
|
195
210
|
async requestHandler(req, res) {
|
|
196
211
|
var _a;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
212
|
+
const ack = new HTTPResponseAck_1.HTTPResponseAck({
|
|
213
|
+
logger: this.logger,
|
|
214
|
+
processBeforeResponse: this.processBeforeResponse,
|
|
215
|
+
unhandledRequestHandler: this.unhandledRequestHandler,
|
|
216
|
+
unhandledRequestTimeoutMillis: this.unhandledRequestTimeoutMillis,
|
|
217
|
+
httpRequest: req,
|
|
218
|
+
httpResponse: res,
|
|
219
|
+
});
|
|
204
220
|
const event = {
|
|
205
221
|
body: req.body,
|
|
206
|
-
ack:
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
throw new errors_1.ReceiverMultipleAckError();
|
|
210
|
-
}
|
|
211
|
-
isAcknowledged = true;
|
|
212
|
-
if (this.processBeforeResponse) {
|
|
213
|
-
if (!response) {
|
|
214
|
-
storedResponse = '';
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
storedResponse = response;
|
|
218
|
-
}
|
|
219
|
-
this.logger.debug('ack() response stored');
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
if (!response) {
|
|
223
|
-
res.send('');
|
|
224
|
-
}
|
|
225
|
-
else if (typeof response === 'string') {
|
|
226
|
-
res.send(response);
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
res.json(response);
|
|
230
|
-
}
|
|
231
|
-
this.logger.debug('ack() response sent');
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
retryNum: (0, http_utils_1.extractRetryNum)(req),
|
|
235
|
-
retryReason: (0, http_utils_1.extractRetryReason)(req),
|
|
222
|
+
ack: ack.bind(),
|
|
223
|
+
retryNum: HTTPModuleFunctions_1.HTTPModuleFunctions.extractRetryNumFromHTTPRequest(req),
|
|
224
|
+
retryReason: HTTPModuleFunctions_1.HTTPModuleFunctions.extractRetryReasonFromHTTPRequest(req),
|
|
236
225
|
customProperties: this.customPropertiesExtractor(req),
|
|
237
226
|
};
|
|
238
227
|
try {
|
|
239
228
|
await ((_a = this.bolt) === null || _a === void 0 ? void 0 : _a.processEvent(event));
|
|
240
|
-
if (storedResponse !== undefined) {
|
|
241
|
-
|
|
242
|
-
res.send(storedResponse);
|
|
243
|
-
}
|
|
244
|
-
else {
|
|
245
|
-
res.json(storedResponse);
|
|
246
|
-
}
|
|
229
|
+
if (ack.storedResponse !== undefined) {
|
|
230
|
+
HTTPModuleFunctions_1.HTTPModuleFunctions.buildContentResponse(res, ack.storedResponse);
|
|
247
231
|
this.logger.debug('stored response sent');
|
|
248
232
|
}
|
|
249
233
|
}
|
|
250
234
|
catch (err) {
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
235
|
+
const acknowledgedByHandler = await this.processEventErrorHandler({
|
|
236
|
+
error: err,
|
|
237
|
+
logger: this.logger,
|
|
238
|
+
request: req,
|
|
239
|
+
response: res,
|
|
240
|
+
storedResponse: ack.storedResponse,
|
|
241
|
+
});
|
|
242
|
+
if (acknowledgedByHandler) {
|
|
243
|
+
// If the value is false, we don't touch the value as a race condition
|
|
244
|
+
// with ack() call may occur especially when processBeforeResponse: false
|
|
245
|
+
ack.ack();
|
|
261
246
|
}
|
|
262
|
-
res.status(500).send();
|
|
263
|
-
throw err;
|
|
264
247
|
}
|
|
265
248
|
}
|
|
266
249
|
init(bolt) {
|
|
@@ -432,6 +415,7 @@ function buildBodyParserMiddleware(logger) {
|
|
|
432
415
|
return next();
|
|
433
416
|
};
|
|
434
417
|
}
|
|
418
|
+
exports.buildBodyParserMiddleware = buildBodyParserMiddleware;
|
|
435
419
|
function parseRequestBody(stringBody, contentType) {
|
|
436
420
|
if (contentType === 'application/x-www-form-urlencoded') {
|
|
437
421
|
const parsedBody = querystring_1.default.parse(stringBody);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressReceiver.js","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExpressReceiver.js","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { Logger } from '@slack/logger';
|
|
3
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
4
|
+
import { CodedError } from '../errors';
|
|
5
|
+
import { BufferedIncomingMessage } from './BufferedIncomingMessage';
|
|
6
|
+
export declare class HTTPModuleFunctions {
|
|
7
|
+
static extractRetryNumFromHTTPRequest(req: IncomingMessage): number | undefined;
|
|
8
|
+
static extractRetryReasonFromHTTPRequest(req: IncomingMessage): string | undefined;
|
|
9
|
+
static parseHTTPRequestBody(req: BufferedIncomingMessage): any;
|
|
10
|
+
static parseAndVerifyHTTPRequest(options: RequestVerificationOptions, req: IncomingMessage, _res?: ServerResponse): Promise<BufferedIncomingMessage>;
|
|
11
|
+
static isBufferedIncomingMessage(req: IncomingMessage): req is BufferedIncomingMessage;
|
|
12
|
+
static getHeader(req: IncomingMessage, header: string): string;
|
|
13
|
+
static bufferIncomingMessage(req: IncomingMessage): Promise<BufferedIncomingMessage>;
|
|
14
|
+
static buildNoBodyResponse(res: ServerResponse, status: number): void;
|
|
15
|
+
static buildUrlVerificationResponse(res: ServerResponse, body: any): void;
|
|
16
|
+
static buildSSLCheckResponse(res: ServerResponse): void;
|
|
17
|
+
static buildContentResponse(res: ServerResponse, body: string | any | undefined): void;
|
|
18
|
+
static defaultDispatchErrorHandler(args: ReceiverDispatchErrorHandlerArgs): void;
|
|
19
|
+
static defaultAsyncDispatchErrorHandler(args: ReceiverDispatchErrorHandlerArgs): Promise<void>;
|
|
20
|
+
static defaultProcessEventErrorHandler(args: ReceiverProcessEventErrorHandlerArgs): Promise<boolean>;
|
|
21
|
+
static defaultUnhandledRequestHandler(args: ReceiverUnhandledRequestHandlerArgs): void;
|
|
22
|
+
}
|
|
23
|
+
export interface RequestVerificationOptions {
|
|
24
|
+
enabled?: boolean;
|
|
25
|
+
signingSecret: string;
|
|
26
|
+
nowMilliseconds?: () => number;
|
|
27
|
+
logger?: Logger;
|
|
28
|
+
}
|
|
29
|
+
export interface ReceiverDispatchErrorHandlerArgs {
|
|
30
|
+
error: Error | CodedError;
|
|
31
|
+
logger: Logger;
|
|
32
|
+
request: IncomingMessage;
|
|
33
|
+
response: ServerResponse;
|
|
34
|
+
}
|
|
35
|
+
export interface ReceiverProcessEventErrorHandlerArgs {
|
|
36
|
+
error: Error | CodedError;
|
|
37
|
+
logger: Logger;
|
|
38
|
+
request: IncomingMessage;
|
|
39
|
+
response: ServerResponse;
|
|
40
|
+
storedResponse: any;
|
|
41
|
+
}
|
|
42
|
+
export interface ReceiverUnhandledRequestHandlerArgs {
|
|
43
|
+
logger: Logger;
|
|
44
|
+
request: IncomingMessage;
|
|
45
|
+
response: ServerResponse;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=HTTPModuleFunctions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTTPModuleFunctions.d.ts","sourceRoot":"","sources":["../../src/receivers/HTTPModuleFunctions.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAa,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,qBAAa,mBAAmB;WAKhB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;WAaxE,iCAAiC,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;WAmB3E,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,GAAG,GAAG;WAcjD,yBAAyB,CAC3C,OAAO,EAAE,0BAA0B,EACnC,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,uBAAuB,CAAC;WAsCrB,yBAAyB,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,IAAI,uBAAuB;WAI/E,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;WAQjD,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;WAanF,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;WAK9D,4BAA4B,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;WAKlE,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;WAMhD,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI;WAoB/E,2BAA2B,CAAC,IAAI,EAAE,gCAAgC,GAAG,IAAI;WAgBnE,gCAAgC,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;WAMvF,+BAA+B,CACjD,IAAI,EAAE,oCAAoC,GACzC,OAAO,CAAC,OAAO,CAAC;WAsBL,8BAA8B,CAAC,IAAI,EAAE,mCAAmC,GAAG,IAAI;CAO9F;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAID,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IAEzB,cAAc,EAAE,GAAG,CAAC;CACrB;AAKD,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HTTPModuleFunctions = void 0;
|
|
7
|
+
/* eslint-disable import/prefer-default-export */
|
|
8
|
+
const querystring_1 = require("querystring");
|
|
9
|
+
const raw_body_1 = __importDefault(require("raw-body"));
|
|
10
|
+
const errors_1 = require("../errors");
|
|
11
|
+
const verify_request_1 = require("./verify-request");
|
|
12
|
+
const verifyErrorPrefix = 'Failed to verify authenticity';
|
|
13
|
+
class HTTPModuleFunctions {
|
|
14
|
+
// ------------------------------------------
|
|
15
|
+
// Request header extraction
|
|
16
|
+
// ------------------------------------------
|
|
17
|
+
static extractRetryNumFromHTTPRequest(req) {
|
|
18
|
+
let retryNum;
|
|
19
|
+
const retryNumHeaderValue = req.headers['x-slack-retry-num'];
|
|
20
|
+
if (retryNumHeaderValue === undefined) {
|
|
21
|
+
retryNum = undefined;
|
|
22
|
+
}
|
|
23
|
+
else if (typeof retryNumHeaderValue === 'string') {
|
|
24
|
+
retryNum = parseInt(retryNumHeaderValue, 10);
|
|
25
|
+
}
|
|
26
|
+
else if (Array.isArray(retryNumHeaderValue) && retryNumHeaderValue.length > 0) {
|
|
27
|
+
retryNum = parseInt(retryNumHeaderValue[0], 10);
|
|
28
|
+
}
|
|
29
|
+
return retryNum;
|
|
30
|
+
}
|
|
31
|
+
static extractRetryReasonFromHTTPRequest(req) {
|
|
32
|
+
let retryReason;
|
|
33
|
+
const retryReasonHeaderValue = req.headers['x-slack-retry-reason'];
|
|
34
|
+
if (retryReasonHeaderValue === undefined) {
|
|
35
|
+
retryReason = undefined;
|
|
36
|
+
}
|
|
37
|
+
else if (typeof retryReasonHeaderValue === 'string') {
|
|
38
|
+
retryReason = retryReasonHeaderValue;
|
|
39
|
+
}
|
|
40
|
+
else if (Array.isArray(retryReasonHeaderValue) && retryReasonHeaderValue.length > 0) {
|
|
41
|
+
// eslint-disable-next-line prefer-destructuring
|
|
42
|
+
retryReason = retryReasonHeaderValue[0];
|
|
43
|
+
}
|
|
44
|
+
return retryReason;
|
|
45
|
+
}
|
|
46
|
+
// ------------------------------------------
|
|
47
|
+
// HTTP request parsing and verification
|
|
48
|
+
// ------------------------------------------
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
static parseHTTPRequestBody(req) {
|
|
51
|
+
const bodyAsString = req.rawBody.toString();
|
|
52
|
+
const contentType = req.headers['content-type'];
|
|
53
|
+
if (contentType === 'application/x-www-form-urlencoded') {
|
|
54
|
+
const parsedQs = (0, querystring_1.parse)(bodyAsString);
|
|
55
|
+
const { payload } = parsedQs;
|
|
56
|
+
if (typeof payload === 'string') {
|
|
57
|
+
return JSON.parse(payload);
|
|
58
|
+
}
|
|
59
|
+
return parsedQs;
|
|
60
|
+
}
|
|
61
|
+
return JSON.parse(bodyAsString);
|
|
62
|
+
}
|
|
63
|
+
static async parseAndVerifyHTTPRequest(options, req, _res) {
|
|
64
|
+
const { signingSecret } = options;
|
|
65
|
+
// Consume the readable stream (or use the previously consumed readable stream)
|
|
66
|
+
const bufferedReq = await HTTPModuleFunctions.bufferIncomingMessage(req);
|
|
67
|
+
if (options.enabled !== undefined && !options.enabled) {
|
|
68
|
+
// As the validation is disabled, immediately return the bufferred reuest
|
|
69
|
+
return bufferedReq;
|
|
70
|
+
}
|
|
71
|
+
const textBody = bufferedReq.rawBody.toString();
|
|
72
|
+
const contentType = req.headers['content-type'];
|
|
73
|
+
if (contentType === 'application/x-www-form-urlencoded') {
|
|
74
|
+
// `ssl_check=1` requests do not require x-slack-signature verification
|
|
75
|
+
const parsedQs = (0, querystring_1.parse)(textBody);
|
|
76
|
+
if (parsedQs && parsedQs.ssl_check) {
|
|
77
|
+
return bufferedReq;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Find the relevant request headers
|
|
81
|
+
const signature = HTTPModuleFunctions.getHeader(req, 'x-slack-signature');
|
|
82
|
+
const requestTimestampSec = Number(HTTPModuleFunctions.getHeader(req, 'x-slack-request-timestamp'));
|
|
83
|
+
(0, verify_request_1.verifySlackRequest)({
|
|
84
|
+
signingSecret,
|
|
85
|
+
body: textBody,
|
|
86
|
+
headers: {
|
|
87
|
+
'x-slack-signature': signature,
|
|
88
|
+
'x-slack-request-timestamp': requestTimestampSec,
|
|
89
|
+
},
|
|
90
|
+
logger: options.logger,
|
|
91
|
+
});
|
|
92
|
+
// Checks have passed! Return the value that has a side effect (the buffered request)
|
|
93
|
+
return bufferedReq;
|
|
94
|
+
}
|
|
95
|
+
static isBufferedIncomingMessage(req) {
|
|
96
|
+
return Buffer.isBuffer(req.rawBody);
|
|
97
|
+
}
|
|
98
|
+
static getHeader(req, header) {
|
|
99
|
+
const value = req.headers[header];
|
|
100
|
+
if (value === undefined || Array.isArray(value)) {
|
|
101
|
+
throw new Error(`${verifyErrorPrefix}: header ${header} did not have the expected type (received ${typeof value}, expected string)`);
|
|
102
|
+
}
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
static async bufferIncomingMessage(req) {
|
|
106
|
+
if (HTTPModuleFunctions.isBufferedIncomingMessage(req)) {
|
|
107
|
+
return req;
|
|
108
|
+
}
|
|
109
|
+
const bufferedRequest = req;
|
|
110
|
+
bufferedRequest.rawBody = await (0, raw_body_1.default)(req);
|
|
111
|
+
return bufferedRequest;
|
|
112
|
+
}
|
|
113
|
+
// ------------------------------------------
|
|
114
|
+
// HTTP response builder methods
|
|
115
|
+
// ------------------------------------------
|
|
116
|
+
static buildNoBodyResponse(res, status) {
|
|
117
|
+
res.writeHead(status);
|
|
118
|
+
}
|
|
119
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
120
|
+
static buildUrlVerificationResponse(res, body) {
|
|
121
|
+
res.writeHead(200, { 'content-type': 'application/json' });
|
|
122
|
+
res.end(JSON.stringify({ challenge: body.challenge }));
|
|
123
|
+
}
|
|
124
|
+
static buildSSLCheckResponse(res) {
|
|
125
|
+
res.writeHead(200);
|
|
126
|
+
res.end();
|
|
127
|
+
}
|
|
128
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
129
|
+
static buildContentResponse(res, body) {
|
|
130
|
+
if (!body) {
|
|
131
|
+
res.writeHead(200);
|
|
132
|
+
res.end();
|
|
133
|
+
}
|
|
134
|
+
else if (typeof body === 'string') {
|
|
135
|
+
res.writeHead(200);
|
|
136
|
+
res.end(body);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
res.writeHead(200, { 'content-type': 'application/json' });
|
|
140
|
+
res.end(JSON.stringify(body));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// ------------------------------------------
|
|
144
|
+
// Error handlers for event processing
|
|
145
|
+
// ------------------------------------------
|
|
146
|
+
// The default dispathErrorHandler implementation:
|
|
147
|
+
// Developers can customize this behavior by passing dispatchErrorHandler to the constructor
|
|
148
|
+
// Note that it was not possible to make this function async due to the limitation of http module
|
|
149
|
+
static defaultDispatchErrorHandler(args) {
|
|
150
|
+
const { error, logger, request, response } = args;
|
|
151
|
+
if ('code' in error) {
|
|
152
|
+
if (error.code === errors_1.ErrorCode.HTTPReceiverDeferredRequestError) {
|
|
153
|
+
logger.info(`Unhandled HTTP request (${request.method}) made to ${request.url}`);
|
|
154
|
+
response.writeHead(404);
|
|
155
|
+
response.end();
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
logger.error(`An unexpected error occurred during a request (${request.method}) made to ${request.url}`);
|
|
160
|
+
logger.debug(`Error details: ${error}`);
|
|
161
|
+
response.writeHead(500);
|
|
162
|
+
response.end();
|
|
163
|
+
}
|
|
164
|
+
static async defaultAsyncDispatchErrorHandler(args) {
|
|
165
|
+
return HTTPModuleFunctions.defaultDispatchErrorHandler(args);
|
|
166
|
+
}
|
|
167
|
+
// The default processEventErrorHandler implementation:
|
|
168
|
+
// Developers can customize this behavior by passing processEventErrorHandler to the constructor
|
|
169
|
+
static async defaultProcessEventErrorHandler(args) {
|
|
170
|
+
const { error, response, logger, storedResponse } = args;
|
|
171
|
+
if ('code' in error) {
|
|
172
|
+
// CodedError has code: string
|
|
173
|
+
const errorCode = error.code;
|
|
174
|
+
if (errorCode === errors_1.ErrorCode.AuthorizationError) {
|
|
175
|
+
// authorize function threw an exception, which means there is no valid installation data
|
|
176
|
+
response.writeHead(401);
|
|
177
|
+
response.end();
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
logger.error('An unhandled error occurred while Bolt processed an event');
|
|
182
|
+
logger.debug(`Error details: ${error}, storedResponse: ${storedResponse}`);
|
|
183
|
+
response.writeHead(500);
|
|
184
|
+
response.end();
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
// The default unhandledRequestHandler implementation:
|
|
188
|
+
// Developers can customize this behavior by passing unhandledRequestHandler to the constructor
|
|
189
|
+
// Note that this method cannot be an async function to align with the implementation using setTimeout
|
|
190
|
+
static defaultUnhandledRequestHandler(args) {
|
|
191
|
+
const { logger } = args;
|
|
192
|
+
logger.error('An incoming event was not acknowledged within 3 seconds. ' +
|
|
193
|
+
'Ensure that the ack() argument is called in a listener.');
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.HTTPModuleFunctions = HTTPModuleFunctions;
|
|
197
|
+
//# sourceMappingURL=HTTPModuleFunctions.js.map
|