@slack/bolt 3.6.0 → 3.9.0-hermesBeta.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/LICENSE +1 -1
- package/README.md +4 -2
- package/dist/App.d.ts +67 -4
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +219 -106
- package/dist/App.js.map +1 -1
- package/dist/Subscription.d.ts +61 -0
- package/dist/Subscription.d.ts.map +1 -0
- package/dist/Subscription.js +169 -0
- package/dist/Subscription.js.map +1 -0
- package/dist/WorkflowStep.d.ts.map +1 -1
- package/dist/WorkflowStep.js +25 -28
- package/dist/WorkflowStep.js.map +1 -1
- package/dist/conversation-store.d.ts.map +1 -1
- package/dist/conversation-store.js +5 -6
- package/dist/conversation-store.js.map +1 -1
- package/dist/errors.d.ts +13 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +25 -9
- package/dist/errors.js.map +1 -1
- package/dist/helpers.d.ts +2 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +9 -0
- package/dist/helpers.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/builtin.d.ts.map +1 -1
- package/dist/middleware/builtin.js +0 -20
- package/dist/middleware/builtin.js.map +1 -1
- package/dist/middleware/process.d.ts +1 -1
- package/dist/middleware/process.d.ts.map +1 -1
- package/dist/middleware/process.js +1 -2
- package/dist/middleware/process.js.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts +4 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.js +15 -20
- package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
- package/dist/receivers/ExpressReceiver.d.ts +20 -7
- package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
- package/dist/receivers/ExpressReceiver.js +167 -87
- package/dist/receivers/ExpressReceiver.js.map +1 -1
- package/dist/receivers/HTTPReceiver.d.ts +54 -4
- package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
- package/dist/receivers/HTTPReceiver.js +240 -94
- package/dist/receivers/HTTPReceiver.js.map +1 -1
- package/dist/receivers/SocketModeReceiver.d.ts +18 -1
- package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
- package/dist/receivers/SocketModeReceiver.js +109 -41
- package/dist/receivers/SocketModeReceiver.js.map +1 -1
- package/dist/receivers/custom-routes.d.ts +14 -0
- package/dist/receivers/custom-routes.d.ts.map +1 -0
- package/dist/receivers/custom-routes.js +33 -0
- package/dist/receivers/custom-routes.js.map +1 -0
- package/dist/receivers/http-utils.d.ts +5 -0
- package/dist/receivers/http-utils.d.ts.map +1 -0
- package/dist/receivers/http-utils.js +35 -0
- package/dist/receivers/http-utils.js.map +1 -0
- package/dist/receivers/render-html-for-install-path.d.ts +1 -0
- package/dist/receivers/render-html-for-install-path.d.ts.map +1 -1
- package/dist/receivers/render-html-for-install-path.js +6 -1
- package/dist/receivers/render-html-for-install-path.js.map +1 -1
- package/dist/receivers/verify-redirect-opts.d.ts +7 -0
- package/dist/receivers/verify-redirect-opts.d.ts.map +1 -0
- package/dist/receivers/verify-redirect-opts.js +23 -0
- package/dist/receivers/verify-redirect-opts.js.map +1 -0
- package/dist/receivers/verify-request.d.ts +1 -0
- package/dist/receivers/verify-request.d.ts.map +1 -1
- package/dist/receivers/verify-request.js +8 -4
- package/dist/receivers/verify-request.js.map +1 -1
- package/dist/types/actions/block-action.d.ts +8 -1
- package/dist/types/actions/block-action.d.ts.map +1 -1
- package/dist/types/actions/index.d.ts +4 -4
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/index.js.map +1 -1
- package/dist/types/actions/notification-subscription.d.ts +59 -0
- package/dist/types/actions/notification-subscription.d.ts.map +1 -0
- package/dist/types/actions/notification-subscription.js +3 -0
- package/dist/types/actions/notification-subscription.js.map +1 -0
- package/dist/types/actions/workflow-step-edit.d.ts.map +1 -1
- package/dist/types/events/base-events.d.ts +5 -5
- 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 +4 -4
- package/dist/types/events/index.d.ts.map +1 -1
- package/dist/types/events/index.js.map +1 -1
- package/dist/types/events/message-events.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +2 -2
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/middleware.d.ts +12 -2
- package/dist/types/middleware.d.ts.map +1 -1
- package/dist/types/middleware.js +11 -0
- package/dist/types/middleware.js.map +1 -1
- package/dist/types/options/index.d.ts +2 -2
- package/dist/types/options/index.d.ts.map +1 -1
- package/dist/types/receiver.d.ts +3 -0
- package/dist/types/receiver.d.ts.map +1 -1
- package/dist/types/shortcuts/index.d.ts +2 -2
- package/dist/types/shortcuts/index.d.ts.map +1 -1
- package/dist/types/shortcuts/index.js.map +1 -1
- package/dist/types/shortcuts/message-shortcut.d.ts.map +1 -1
- package/dist/types/subscription/index.d.ts +80 -0
- package/dist/types/subscription/index.d.ts.map +1 -0
- package/dist/types/subscription/index.js +3 -0
- package/dist/types/subscription/index.js.map +1 -0
- package/dist/types/utilities.d.ts.map +1 -1
- package/package.json +18 -20
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/strict-boolean-expressions */
|
|
3
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
3
|
if (k2 === undefined) k2 = k;
|
|
5
4
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -23,7 +22,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
23
|
};
|
|
25
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.verifySignatureAndParseRawBody = exports.respondToUrlVerification = exports.respondToSslCheck = void 0;
|
|
25
|
+
exports.verifySignatureAndParseBody = exports.verifySignatureAndParseRawBody = exports.respondToUrlVerification = exports.respondToSslCheck = void 0;
|
|
26
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
27
27
|
const http_1 = require("http");
|
|
28
28
|
const https_1 = require("https");
|
|
29
29
|
const express_1 = __importStar(require("express"));
|
|
@@ -34,21 +34,67 @@ 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 = require("./render-html-for-install-path");
|
|
37
|
+
const render_html_for_install_path_1 = __importDefault(require("./render-html-for-install-path"));
|
|
38
|
+
const verify_redirect_opts_1 = require("./verify-redirect-opts");
|
|
39
|
+
const http_utils_1 = require("./http-utils");
|
|
40
|
+
// Option keys for tls.createServer() and tls.createSecureContext(), exclusive of those for http.createServer()
|
|
41
|
+
const httpsOptionKeys = [
|
|
42
|
+
'ALPNProtocols',
|
|
43
|
+
'clientCertEngine',
|
|
44
|
+
'enableTrace',
|
|
45
|
+
'handshakeTimeout',
|
|
46
|
+
'rejectUnauthorized',
|
|
47
|
+
'requestCert',
|
|
48
|
+
'sessionTimeout',
|
|
49
|
+
'SNICallback',
|
|
50
|
+
'ticketKeys',
|
|
51
|
+
'pskCallback',
|
|
52
|
+
'pskIdentityHint',
|
|
53
|
+
'ca',
|
|
54
|
+
'cert',
|
|
55
|
+
'sigalgs',
|
|
56
|
+
'ciphers',
|
|
57
|
+
'clientCertEngine',
|
|
58
|
+
'crl',
|
|
59
|
+
'dhparam',
|
|
60
|
+
'ecdhCurve',
|
|
61
|
+
'honorCipherOrder',
|
|
62
|
+
'key',
|
|
63
|
+
'privateKeyEngine',
|
|
64
|
+
'privateKeyIdentifier',
|
|
65
|
+
'maxVersion',
|
|
66
|
+
'minVersion',
|
|
67
|
+
'passphrase',
|
|
68
|
+
'pfx',
|
|
69
|
+
'secureOptions',
|
|
70
|
+
'secureProtocol',
|
|
71
|
+
'sessionIdContext',
|
|
72
|
+
];
|
|
73
|
+
const missingServerErrorDescription = 'The receiver cannot be started because private state was mutated. Please report this to the maintainers.';
|
|
74
|
+
const respondToSslCheck = (req, res, next) => {
|
|
75
|
+
if (req.body && req.body.ssl_check) {
|
|
76
|
+
res.send();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
next();
|
|
80
|
+
};
|
|
81
|
+
exports.respondToSslCheck = respondToSslCheck;
|
|
82
|
+
const respondToUrlVerification = (req, res, next) => {
|
|
83
|
+
if (req.body && req.body.type && req.body.type === 'url_verification') {
|
|
84
|
+
res.json({ challenge: req.body.challenge });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
next();
|
|
88
|
+
};
|
|
89
|
+
exports.respondToUrlVerification = respondToUrlVerification;
|
|
38
90
|
/**
|
|
39
91
|
* Receives HTTP requests with Events, Slash Commands, and Actions
|
|
40
92
|
*/
|
|
41
93
|
class ExpressReceiver {
|
|
42
|
-
constructor({ signingSecret = '', logger = undefined, logLevel = logger_1.LogLevel.INFO, endpoints = { events: '/slack/events' }, processBeforeResponse = false, clientId = undefined, clientSecret = undefined, stateSecret = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, }) {
|
|
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) => ({}), }) {
|
|
95
|
+
var _a;
|
|
43
96
|
this.installer = undefined;
|
|
44
|
-
this.app = express_1.default();
|
|
45
|
-
if (typeof logger !== 'undefined') {
|
|
46
|
-
this.logger = logger;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this.logger = new logger_1.ConsoleLogger();
|
|
50
|
-
this.logger.setLevel(logLevel);
|
|
51
|
-
}
|
|
97
|
+
this.app = app !== undefined ? app : (0, express_1.default)();
|
|
52
98
|
if (typeof logger !== 'undefined') {
|
|
53
99
|
this.logger = logger;
|
|
54
100
|
}
|
|
@@ -56,21 +102,31 @@ class ExpressReceiver {
|
|
|
56
102
|
this.logger = new logger_1.ConsoleLogger();
|
|
57
103
|
this.logger.setLevel(logLevel);
|
|
58
104
|
}
|
|
105
|
+
this.signatureVerification = signatureVerification;
|
|
106
|
+
const bodyParser = this.signatureVerification ?
|
|
107
|
+
buildVerificationBodyParserMiddleware(this.logger, signingSecret) :
|
|
108
|
+
buildBodyParserMiddleware(this.logger);
|
|
59
109
|
const expressMiddleware = [
|
|
60
|
-
|
|
110
|
+
bodyParser,
|
|
61
111
|
exports.respondToSslCheck,
|
|
62
112
|
exports.respondToUrlVerification,
|
|
63
113
|
this.requestHandler.bind(this),
|
|
64
114
|
];
|
|
65
115
|
this.processBeforeResponse = processBeforeResponse;
|
|
66
116
|
const endpointList = typeof endpoints === 'string' ? [endpoints] : Object.values(endpoints);
|
|
67
|
-
this.router = express_1.Router();
|
|
117
|
+
this.router = router !== undefined ? router : (0, express_1.Router)();
|
|
68
118
|
endpointList.forEach((endpoint) => {
|
|
69
119
|
this.router.post(endpoint, ...expressMiddleware);
|
|
70
120
|
});
|
|
121
|
+
this.customPropertiesExtractor = customPropertiesExtractor;
|
|
122
|
+
// Verify redirect options if supplied, throws coded error if invalid
|
|
123
|
+
(0, verify_redirect_opts_1.verifyRedirectOpts)({ redirectUri, redirectUriPath: installerOptions.redirectUriPath });
|
|
71
124
|
if (clientId !== undefined &&
|
|
72
125
|
clientSecret !== undefined &&
|
|
73
|
-
(
|
|
126
|
+
(installerOptions.stateVerification === false || // state store not needed
|
|
127
|
+
stateSecret !== undefined ||
|
|
128
|
+
installerOptions.stateStore !== undefined) // user provided state store
|
|
129
|
+
) {
|
|
74
130
|
this.installer = new oauth_1.InstallProvider({
|
|
75
131
|
clientId,
|
|
76
132
|
clientSecret,
|
|
@@ -79,26 +135,55 @@ class ExpressReceiver {
|
|
|
79
135
|
logLevel,
|
|
80
136
|
logger,
|
|
81
137
|
stateStore: installerOptions.stateStore,
|
|
82
|
-
|
|
138
|
+
stateVerification: installerOptions.stateVerification,
|
|
139
|
+
authVersion: (_a = installerOptions.authVersion) !== null && _a !== void 0 ? _a : 'v2',
|
|
83
140
|
clientOptions: installerOptions.clientOptions,
|
|
84
141
|
authorizationUrl: installerOptions.authorizationUrl,
|
|
85
142
|
});
|
|
86
143
|
}
|
|
144
|
+
// create install url options
|
|
145
|
+
const installUrlOptions = {
|
|
146
|
+
metadata: installerOptions.metadata,
|
|
147
|
+
scopes: scopes !== null && scopes !== void 0 ? scopes : [],
|
|
148
|
+
userScopes: installerOptions.userScopes,
|
|
149
|
+
redirectUri,
|
|
150
|
+
};
|
|
87
151
|
// Add OAuth routes to receiver
|
|
88
152
|
if (this.installer !== undefined) {
|
|
89
|
-
const redirectUriPath = installerOptions.redirectUriPath === undefined ?
|
|
153
|
+
const redirectUriPath = installerOptions.redirectUriPath === undefined ?
|
|
154
|
+
'/slack/oauth_redirect' :
|
|
155
|
+
installerOptions.redirectUriPath;
|
|
156
|
+
const { callbackOptions, stateVerification } = installerOptions;
|
|
90
157
|
this.router.use(redirectUriPath, async (req, res) => {
|
|
91
|
-
|
|
158
|
+
if (stateVerification === false) {
|
|
159
|
+
// when stateVerification is disabled pass install options directly to handler
|
|
160
|
+
// since they won't be encoded in the state param of the generated url
|
|
161
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
162
|
+
await this.installer.handleCallback(req, res, callbackOptions, installUrlOptions);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
166
|
+
await this.installer.handleCallback(req, res, callbackOptions);
|
|
167
|
+
}
|
|
92
168
|
});
|
|
93
169
|
const installPath = installerOptions.installPath === undefined ? '/slack/install' : installerOptions.installPath;
|
|
94
170
|
this.router.get(installPath, async (_req, res, next) => {
|
|
95
171
|
try {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
172
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
173
|
+
const url = await this.installer.generateInstallUrl(installUrlOptions, stateVerification);
|
|
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);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
// The installation starts from a landing page served by this app.
|
|
182
|
+
const renderHtml = installerOptions.renderHtmlForInstallPath !== undefined ?
|
|
183
|
+
installerOptions.renderHtmlForInstallPath :
|
|
184
|
+
render_html_for_install_path_1.default;
|
|
185
|
+
res.send(renderHtml(url));
|
|
186
|
+
}
|
|
102
187
|
}
|
|
103
188
|
catch (error) {
|
|
104
189
|
next(error);
|
|
@@ -114,7 +199,6 @@ class ExpressReceiver {
|
|
|
114
199
|
if (!isAcknowledged) {
|
|
115
200
|
this.logger.error('An incoming event was not acknowledged within 3 seconds. Ensure that the ack() argument is called in a listener.');
|
|
116
201
|
}
|
|
117
|
-
// tslint:disable-next-line: align
|
|
118
202
|
}, 3001);
|
|
119
203
|
let storedResponse;
|
|
120
204
|
const event = {
|
|
@@ -147,6 +231,9 @@ class ExpressReceiver {
|
|
|
147
231
|
this.logger.debug('ack() response sent');
|
|
148
232
|
}
|
|
149
233
|
},
|
|
234
|
+
retryNum: (0, http_utils_1.extractRetryNum)(req),
|
|
235
|
+
retryReason: (0, http_utils_1.extractRetryReason)(req),
|
|
236
|
+
customProperties: this.customPropertiesExtractor(req),
|
|
150
237
|
};
|
|
151
238
|
try {
|
|
152
239
|
await ((_a = this.bolt) === null || _a === void 0 ? void 0 : _a.processEvent(event));
|
|
@@ -161,6 +248,17 @@ class ExpressReceiver {
|
|
|
161
248
|
}
|
|
162
249
|
}
|
|
163
250
|
catch (err) {
|
|
251
|
+
const e = err;
|
|
252
|
+
if ('code' in e) {
|
|
253
|
+
// CodedError has code: string
|
|
254
|
+
const errorCode = err.code;
|
|
255
|
+
if (errorCode === errors_1.ErrorCode.AuthorizationError) {
|
|
256
|
+
// authorize function threw an exception, which means there is no valid installation data
|
|
257
|
+
res.status(401).send();
|
|
258
|
+
isAcknowledged = true;
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
164
262
|
res.status(500).send();
|
|
165
263
|
throw err;
|
|
166
264
|
}
|
|
@@ -170,7 +268,7 @@ class ExpressReceiver {
|
|
|
170
268
|
}
|
|
171
269
|
start(portOrListenOptions, serverOptions = {}) {
|
|
172
270
|
let createServerFn = http_1.createServer;
|
|
173
|
-
//
|
|
271
|
+
// Look for HTTPS-specific serverOptions to determine which factory function to use
|
|
174
272
|
if (Object.keys(serverOptions).filter((k) => httpsOptionKeys.includes(k)).length > 0) {
|
|
175
273
|
createServerFn = https_1.createServer;
|
|
176
274
|
}
|
|
@@ -204,50 +302,39 @@ class ExpressReceiver {
|
|
|
204
302
|
if (this.server === undefined) {
|
|
205
303
|
return reject(new errors_1.ReceiverInconsistentStateError(missingServerErrorDescription));
|
|
206
304
|
}
|
|
207
|
-
resolve(this.server);
|
|
305
|
+
return resolve(this.server);
|
|
208
306
|
});
|
|
209
307
|
});
|
|
210
308
|
}
|
|
211
309
|
// TODO: the arguments should be defined as the arguments to close() (which happen to be none), but for sake of
|
|
212
310
|
// generic types
|
|
213
311
|
stop() {
|
|
312
|
+
if (this.server === undefined) {
|
|
313
|
+
return Promise.reject(new errors_1.ReceiverInconsistentStateError('The receiver cannot be stopped because it was not started.'));
|
|
314
|
+
}
|
|
214
315
|
return new Promise((resolve, reject) => {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
this.server.close((error) => {
|
|
316
|
+
var _a;
|
|
317
|
+
(_a = this.server) === null || _a === void 0 ? void 0 : _a.close((error) => {
|
|
219
318
|
if (error !== undefined) {
|
|
220
319
|
return reject(error);
|
|
221
320
|
}
|
|
222
321
|
this.server = undefined;
|
|
223
|
-
resolve();
|
|
322
|
+
return resolve();
|
|
224
323
|
});
|
|
225
324
|
});
|
|
226
325
|
}
|
|
227
326
|
}
|
|
228
327
|
exports.default = ExpressReceiver;
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
next();
|
|
235
|
-
};
|
|
236
|
-
exports.respondToSslCheck = respondToSslCheck;
|
|
237
|
-
const respondToUrlVerification = (req, res, next) => {
|
|
238
|
-
if (req.body && req.body.type && req.body.type === 'url_verification') {
|
|
239
|
-
res.json({ challenge: req.body.challenge });
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
next();
|
|
243
|
-
};
|
|
244
|
-
exports.respondToUrlVerification = respondToUrlVerification;
|
|
328
|
+
function verifySignatureAndParseRawBody(logger, signingSecret) {
|
|
329
|
+
return buildVerificationBodyParserMiddleware(logger, signingSecret);
|
|
330
|
+
}
|
|
331
|
+
exports.verifySignatureAndParseRawBody = verifySignatureAndParseRawBody;
|
|
245
332
|
/**
|
|
246
333
|
* This request handler has two responsibilities:
|
|
247
334
|
* - Verify the request signature
|
|
248
335
|
* - Parse request.body and assign the successfully parsed object to it.
|
|
249
336
|
*/
|
|
250
|
-
function
|
|
337
|
+
function buildVerificationBodyParserMiddleware(logger, signingSecret) {
|
|
251
338
|
return async (req, res, next) => {
|
|
252
339
|
let stringBody;
|
|
253
340
|
// On some environments like GCP (Google Cloud Platform),
|
|
@@ -257,7 +344,7 @@ function verifySignatureAndParseRawBody(logger, signingSecret) {
|
|
|
257
344
|
stringBody = preparsedRawBody.toString();
|
|
258
345
|
}
|
|
259
346
|
else {
|
|
260
|
-
stringBody = (await raw_body_1.default(req)).toString();
|
|
347
|
+
stringBody = (await (0, raw_body_1.default)(req)).toString();
|
|
261
348
|
}
|
|
262
349
|
// *** Parsing body ***
|
|
263
350
|
// As the verification passed, parse the body as an object and assign it to req.body
|
|
@@ -280,9 +367,10 @@ function verifySignatureAndParseRawBody(logger, signingSecret) {
|
|
|
280
367
|
return next();
|
|
281
368
|
};
|
|
282
369
|
}
|
|
283
|
-
exports.verifySignatureAndParseRawBody = verifySignatureAndParseRawBody;
|
|
284
370
|
function logError(logger, message, error) {
|
|
285
|
-
const logMessage = 'code' in error ?
|
|
371
|
+
const logMessage = 'code' in error ?
|
|
372
|
+
`${message} (code: ${error.code}, message: ${error.message})` :
|
|
373
|
+
`${message} (error: ${error})`;
|
|
286
374
|
logger.warn(logMessage);
|
|
287
375
|
}
|
|
288
376
|
function verifyRequestSignature(signingSecret, body, signature, requestTimestamp) {
|
|
@@ -303,7 +391,7 @@ function verifyRequestSignature(signingSecret, body, signature, requestTimestamp
|
|
|
303
391
|
const hmac = crypto_1.default.createHmac('sha256', signingSecret);
|
|
304
392
|
const [version, hash] = signature.split('=');
|
|
305
393
|
hmac.update(`${version}:${ts}:${body}`);
|
|
306
|
-
if (!tsscmp_1.default(hash, hmac.digest('hex'))) {
|
|
394
|
+
if (!(0, tsscmp_1.default)(hash, hmac.digest('hex'))) {
|
|
307
395
|
throw new errors_1.ReceiverAuthenticityError('Slack request signing verification failed. Signature mismatch.');
|
|
308
396
|
}
|
|
309
397
|
}
|
|
@@ -318,6 +406,32 @@ function verifySignatureAndParseBody(signingSecret, body, headers) {
|
|
|
318
406
|
verifyRequestSignature(signingSecret, body, signature, requestTimestamp);
|
|
319
407
|
return parseRequestBody(body, contentType);
|
|
320
408
|
}
|
|
409
|
+
exports.verifySignatureAndParseBody = verifySignatureAndParseBody;
|
|
410
|
+
function buildBodyParserMiddleware(logger) {
|
|
411
|
+
return async (req, res, next) => {
|
|
412
|
+
let stringBody;
|
|
413
|
+
// On some environments like GCP (Google Cloud Platform),
|
|
414
|
+
// req.body can be pre-parsed and be passed as req.rawBody here
|
|
415
|
+
const preparsedRawBody = req.rawBody;
|
|
416
|
+
if (preparsedRawBody !== undefined) {
|
|
417
|
+
stringBody = preparsedRawBody.toString();
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
stringBody = (await (0, raw_body_1.default)(req)).toString();
|
|
421
|
+
}
|
|
422
|
+
try {
|
|
423
|
+
const { 'content-type': contentType } = req.headers;
|
|
424
|
+
req.body = parseRequestBody(stringBody, contentType);
|
|
425
|
+
}
|
|
426
|
+
catch (error) {
|
|
427
|
+
if (error) {
|
|
428
|
+
logError(logger, 'Parsing request body failed', error);
|
|
429
|
+
return res.status(400).send();
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
return next();
|
|
433
|
+
};
|
|
434
|
+
}
|
|
321
435
|
function parseRequestBody(stringBody, contentType) {
|
|
322
436
|
if (contentType === 'application/x-www-form-urlencoded') {
|
|
323
437
|
const parsedBody = querystring_1.default.parse(stringBody);
|
|
@@ -328,38 +442,4 @@ function parseRequestBody(stringBody, contentType) {
|
|
|
328
442
|
}
|
|
329
443
|
return JSON.parse(stringBody);
|
|
330
444
|
}
|
|
331
|
-
// Option keys for tls.createServer() and tls.createSecureContext(), exclusive of those for http.createServer()
|
|
332
|
-
const httpsOptionKeys = [
|
|
333
|
-
'ALPNProtocols',
|
|
334
|
-
'clientCertEngine',
|
|
335
|
-
'enableTrace',
|
|
336
|
-
'handshakeTimeout',
|
|
337
|
-
'rejectUnauthorized',
|
|
338
|
-
'requestCert',
|
|
339
|
-
'sessionTimeout',
|
|
340
|
-
'SNICallback',
|
|
341
|
-
'ticketKeys',
|
|
342
|
-
'pskCallback',
|
|
343
|
-
'pskIdentityHint',
|
|
344
|
-
'ca',
|
|
345
|
-
'cert',
|
|
346
|
-
'sigalgs',
|
|
347
|
-
'ciphers',
|
|
348
|
-
'clientCertEngine',
|
|
349
|
-
'crl',
|
|
350
|
-
'dhparam',
|
|
351
|
-
'ecdhCurve',
|
|
352
|
-
'honorCipherOrder',
|
|
353
|
-
'key',
|
|
354
|
-
'privateKeyEngine',
|
|
355
|
-
'privateKeyIdentifier',
|
|
356
|
-
'maxVersion',
|
|
357
|
-
'minVersion',
|
|
358
|
-
'passphrase',
|
|
359
|
-
'pfx',
|
|
360
|
-
'secureOptions',
|
|
361
|
-
'secureProtocol',
|
|
362
|
-
'sessionIdContext',
|
|
363
|
-
];
|
|
364
|
-
const missingServerErrorDescription = 'The receiver cannot be started because private state was mutated. Please report this to the maintainers.';
|
|
365
445
|
//# sourceMappingURL=ExpressReceiver.js.map
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,+BAA2D;AAC3D,iCAAsH;AAEtH,mDAAmG;AACnG,wDAA+B;AAC/B,8DAAsC;AACtC,oDAA4B;AAC5B,oDAA4B;AAC5B,0CAAgE;AAChE,wCAA2G;AAE3G,sCAMmB;AAEnB,kGAA6E;AAC7E,iEAA4D;AAE5D,6CAAmE;AAEnE,+GAA+G;AAC/G,MAAM,eAAe,GAAG;IACtB,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,IAAI;IACJ,MAAM;IACN,SAAS;IACT,SAAS;IACT,kBAAkB;IAClB,KAAK;IACL,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,KAAK;IACL,kBAAkB;IAClB,sBAAsB;IACtB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,eAAe;IACf,gBAAgB;IAChB,kBAAkB;CACnB,CAAC;AAEF,MAAM,6BAA6B,GAAG,0GAA0G,CAAC;AAE1I,MAAM,iBAAiB,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;QAClC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO;KACR;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,wBAAwB,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACzE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;QACrE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO;KACR;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC;AA2CF;;GAEG;AACH,MAAqB,eAAe;IAsBlC,YAAmB,EACjB,aAAa,GAAG,EAAE,EAClB,MAAM,GAAG,SAAS,EAClB,QAAQ,GAAG,iBAAQ,CAAC,IAAI,EACxB,SAAS,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,EACvC,qBAAqB,GAAG,KAAK,EAC7B,qBAAqB,GAAG,IAAI,EAC5B,QAAQ,GAAG,SAAS,EACpB,YAAY,GAAG,SAAS,EACxB,WAAW,GAAG,SAAS,EACvB,WAAW,GAAG,SAAS,EACvB,iBAAiB,GAAG,SAAS,EAC7B,MAAM,GAAG,SAAS,EAClB,gBAAgB,GAAG,EAAE,EACrB,GAAG,GAAG,SAAS,EACf,MAAM,GAAG,SAAS,EAClB,yBAAyB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GACnB;;QAvBlB,cAAS,GAAgC,SAAS,CAAC;QAwBxD,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAO,GAAE,CAAC;QAE/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7C,qCAAqC,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;YACnE,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAqB;YAC1C,UAAU;YACV,yBAAiB;YACjB,gCAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAEnD,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,gBAAM,GAAE,CAAC;QACvD,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAE3D,qEAAqE;QACrE,IAAA,yCAAkB,EAAC,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC;QAEvF,IACE,QAAQ,KAAK,SAAS;YACtB,YAAY,KAAK,SAAS;YACzB,CAAC,gBAAgB,CAAC,iBAAiB,KAAK,KAAK,IAAI,yBAAyB;gBACxE,WAAW,KAAK,SAAS;gBACxB,gBAAgB,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,4BAA4B;UAC3E;YACA,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAe,CAAC;gBACnC,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,iBAAiB;gBACjB,QAAQ;gBACR,MAAM;gBACN,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;gBACrD,WAAW,EAAE,MAAA,gBAAgB,CAAC,WAAW,mCAAI,IAAI;gBACjD,aAAa,EAAE,gBAAgB,CAAC,aAAa;gBAC7C,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;aACpD,CAAC,CAAC;SACJ;QACD,6BAA6B;QAC7B,MAAM,iBAAiB,GAAG;YACxB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE;YACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW;SACZ,CAAC;QACF,+BAA+B;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;gBACtE,uBAAuB,CAAC,CAAC;gBACzB,gBAAgB,CAAC,eAAe,CAAC;YACnC,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,iBAAiB,KAAK,KAAK,EAAE;oBAC/B,8EAA8E;oBAC9E,sEAAsE;oBACtE,oEAAoE;oBACpE,MAAM,IAAI,CAAC,SAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;iBACpF;qBAAM;oBACL,oEAAoE;oBACpE,MAAM,IAAI,CAAC,SAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;iBACjE;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACjH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACrD,IAAI;oBACF,oEAAoE;oBACpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;oBAC3F,IAAI,gBAAgB,CAAC,aAAa,EAAE;wBAClC,2EAA2E;wBAC3E,8EAA8E;wBAC9E,0FAA0F;wBAC1F,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACnB;yBAAM;wBACL,kEAAkE;wBAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC;4BAC1E,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;4BAC3C,sCAA+B,CAAC;wBAClC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC3B;iBACF;gBAAC,OAAO,KAAK,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAY,EAAE,GAAa;;QACtD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kHAAkH,CACnH,CAAC;aACH;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,cAAc,CAAC;QACnB,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAiB,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACjC,IAAI,cAAc,EAAE;oBAClB,MAAM,IAAI,iCAAwB,EAAE,CAAC;iBACtC;gBACD,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAI,IAAI,CAAC,qBAAqB,EAAE;oBAC9B,IAAI,CAAC,QAAQ,EAAE;wBACb,cAAc,GAAG,EAAE,CAAC;qBACrB;yBAAM;wBACL,cAAc,GAAG,QAAQ,CAAC;qBAC3B;oBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBAC5C;qBAAM;oBACL,IAAI,CAAC,QAAQ,EAAE;wBACb,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACd;yBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;wBACvC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpB;yBAAM;wBACL,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpB;oBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;iBAC1C;YACH,CAAC;YACD,QAAQ,EAAE,IAAA,4BAAe,EAAC,GAAG,CAAC;YAC9B,WAAW,EAAE,IAAA,+BAAkB,EAAC,GAAG,CAAC;YACpC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC;SACtD,CAAC;QAEF,IAAI;YACF,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,CAAC,KAAK,CAAC,CAAA,CAAC;YACrC,IAAI,cAAc,KAAK,SAAS,EAAE;gBAChC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;oBACtC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC1B;qBAAM;oBACL,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC1B;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;aAC3C;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,GAAU,CAAC;YACrB,IAAI,MAAM,IAAI,CAAC,EAAE;gBACf,8BAA8B;gBAC9B,MAAM,SAAS,GAAI,GAAkB,CAAC,IAAI,CAAC;gBAC3C,IAAI,SAAS,KAAK,kBAAS,CAAC,kBAAkB,EAAE;oBAC9C,yFAAyF;oBACzF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvB,cAAc,GAAG,IAAI,CAAC;oBACtB,OAAO;iBACR;aACF;YACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAEM,IAAI,CAAC,IAAS;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IASM,KAAK,CACV,mBAA2C,EAC3C,gBAAoD,EAAE;QAEtD,IAAI,cAAc,GAAmD,mBAAY,CAAC;QAElF,mFAAmF;QACnF,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACpF,cAAc,GAAG,oBAAiB,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,uCAA8B,CAAC,gEAAgE,CAAC,CACrG,CAAC;SACH;QAED,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,uCAA8B,CAAC,6BAA6B,CAAC,CAAC;aACzE;YAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC7B,MAAM,IAAI,uCAA8B,CAAC,6BAA6B,CAAC,CAAC;iBACzE;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAEpB,2GAA2G;gBAC3G,4GAA4G;gBAC5G,6GAA6G;gBAC7G,cAAc;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3B,4GAA4G;gBAC5G,4GAA4G;gBAC5G,iBAAiB;gBACjB,qCAAqC;gBACrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC7B,OAAO,MAAM,CAAC,IAAI,uCAA8B,CAAC,6BAA6B,CAAC,CAAC,CAAC;iBAClF;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+GAA+G;IAC/G,gBAAgB;IACT,IAAI;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,uCAA8B,CAAC,4DAA4D,CAAC,CAAC,CAAC;SACzH;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACrC,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;iBACtB;gBAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzSD,kCAySC;AAED,SAAgB,8BAA8B,CAC5C,MAAc,EACd,aAAmD;IAEnD,OAAO,qCAAqC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AALD,wEAKC;AAED;;;;GAIG;AACH,SAAS,qCAAqC,CAC5C,MAAc,EACd,aAAmD;IAEnD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,UAAkB,CAAC;QACvB,yDAAyD;QACzD,+DAA+D;QAC/D,MAAM,gBAAgB,GAAS,GAAW,CAAC,OAAO,CAAC;QACnD,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;SAC1C;aAAM;YACL,UAAU,GAAG,CAAC,MAAM,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9C;QAED,uBAAuB;QACvB,oFAAoF;QACpF,uEAAuE;QAEvE,IAAI;YACF,4EAA4E;YAC5E,uDAAuD;YACvD,GAAG,CAAC,IAAI,GAAG,2BAA2B,CACpC,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,aAAa,EAAE,EACzE,UAAU,EACV,GAAG,CAAC,OAAO,CACZ,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,YAAY,kCAAyB,EAAE;oBAC9C,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;oBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC/B;gBAED,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/B;SACF;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,OAAe,EAAE,KAAU;IAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC;QAClC,GAAG,OAAO,WAAW,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/D,GAAG,OAAO,YAAY,KAAK,GAAG,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB,CAC7B,aAAqB,EACrB,IAAY,EACZ,SAA6B,EAC7B,gBAAoC;IAEpC,IAAI,SAAS,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAC7D,MAAM,IAAI,kCAAyB,CAAC,sEAAsE,CAAC,CAAC;KAC7G;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpC,iDAAiD;IACjD,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;QACb,MAAM,IAAI,kCAAyB,CAAC,kEAAkE,CAAC,CAAC;KACzG;IAED,+CAA+C;IAC/C,uCAAuC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE9D,IAAI,EAAE,GAAG,cAAc,EAAE;QACvB,MAAM,IAAI,kCAAyB,CAAC,kEAAkE,CAAC,CAAC;KACzG;IAED,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAExC,IAAI,CAAC,IAAA,gBAAM,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;QACrC,MAAM,IAAI,kCAAyB,CAAC,gEAAgE,CAAC,CAAC;KACvG;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B,CACzC,aAAqB,EACrB,IAAY,EACZ,OAA4B;IAE5B,+BAA+B;IAC/B,MAAM,EACJ,mBAAmB,EAAE,SAAS,EAC9B,2BAA2B,EAAE,gBAAgB,EAC7C,cAAc,EAAE,WAAW,GAC5B,GAAG,OAAO,CAAC;IAEZ,sBAAsB,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEzE,OAAO,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AAfD,kEAeC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,UAAkB,CAAC;QACvB,yDAAyD;QACzD,+DAA+D;QAC/D,MAAM,gBAAgB,GAAS,GAAW,CAAC,OAAO,CAAC;QACnD,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;SAC1C;aAAM;YACL,UAAU,GAAG,CAAC,MAAM,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9C;QACD,IAAI;YACF,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;YACpD,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,EAAE;gBACT,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/B;SACF;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,WAA+B;IAC3E,IAAI,WAAW,KAAK,mCAAmC,EAAE;QACvD,MAAM,UAAU,GAAG,qBAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACvC;QAED,OAAO,UAAU,CAAC;KACnB;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,56 +1,106 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Server, ServerOptions, RequestListener } from 'http';
|
|
2
|
+
import { Server, ServerOptions, RequestListener, IncomingMessage, ServerResponse } from 'http';
|
|
3
3
|
import { Server as HTTPSServer, ServerOptions as HTTPSServerOptions } from 'https';
|
|
4
4
|
import { ListenOptions } from 'net';
|
|
5
5
|
import { Logger, LogLevel } from '@slack/logger';
|
|
6
6
|
import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions } from '@slack/oauth';
|
|
7
|
+
import { BufferedIncomingMessage } from './verify-request';
|
|
7
8
|
import App from '../App';
|
|
8
9
|
import { Receiver } from '../types';
|
|
10
|
+
import { CodedError } from '../errors';
|
|
11
|
+
import { CustomRoute } from './custom-routes';
|
|
12
|
+
import { StringIndexed } from '../types/helpers';
|
|
9
13
|
export interface HTTPReceiverOptions {
|
|
10
14
|
signingSecret: string;
|
|
11
15
|
endpoints?: string | string[];
|
|
16
|
+
port?: number;
|
|
17
|
+
customRoutes?: CustomRoute[];
|
|
12
18
|
logger?: Logger;
|
|
13
19
|
logLevel?: LogLevel;
|
|
14
20
|
processBeforeResponse?: boolean;
|
|
21
|
+
signatureVerification?: boolean;
|
|
15
22
|
clientId?: string;
|
|
16
23
|
clientSecret?: string;
|
|
17
24
|
stateSecret?: InstallProviderOptions['stateSecret'];
|
|
25
|
+
redirectUri?: string;
|
|
18
26
|
installationStore?: InstallProviderOptions['installationStore'];
|
|
19
27
|
scopes?: InstallURLOptions['scopes'];
|
|
20
28
|
installerOptions?: HTTPReceiverInstallerOptions;
|
|
29
|
+
customPropertiesExtractor?: (request: BufferedIncomingMessage) => StringIndexed;
|
|
30
|
+
dispatchErrorHandler?: (args: HTTPReceiverDispatchErrorHandlerArgs) => void;
|
|
31
|
+
processEventErrorHandler?: (args: HTTPReceiverProcessEventErrorHandlerArgs) => Promise<boolean>;
|
|
32
|
+
unhandledRequestHandler?: (args: HTTPReceiverUnhandledRequestHandlerArgs) => void;
|
|
33
|
+
unhandledRequestTimeoutMillis?: number;
|
|
21
34
|
}
|
|
22
35
|
export interface HTTPReceiverInstallerOptions {
|
|
23
36
|
installPath?: string;
|
|
37
|
+
directInstall?: boolean;
|
|
38
|
+
renderHtmlForInstallPath?: (url: string) => string;
|
|
24
39
|
redirectUriPath?: string;
|
|
25
40
|
stateStore?: InstallProviderOptions['stateStore'];
|
|
41
|
+
stateVerification?: InstallProviderOptions['stateVerification'];
|
|
26
42
|
authVersion?: InstallProviderOptions['authVersion'];
|
|
27
43
|
clientOptions?: InstallProviderOptions['clientOptions'];
|
|
28
44
|
authorizationUrl?: InstallProviderOptions['authorizationUrl'];
|
|
29
45
|
metadata?: InstallURLOptions['metadata'];
|
|
30
46
|
userScopes?: InstallURLOptions['userScopes'];
|
|
31
47
|
callbackOptions?: CallbackOptions;
|
|
48
|
+
port?: number;
|
|
32
49
|
}
|
|
50
|
+
export interface HTTPReceiverDispatchErrorHandlerArgs {
|
|
51
|
+
error: Error | CodedError;
|
|
52
|
+
logger: Logger;
|
|
53
|
+
request: IncomingMessage;
|
|
54
|
+
response: ServerResponse;
|
|
55
|
+
}
|
|
56
|
+
export declare function defaultDispatchErrorHandler(args: HTTPReceiverDispatchErrorHandlerArgs): void;
|
|
57
|
+
export interface HTTPReceiverProcessEventErrorHandlerArgs {
|
|
58
|
+
error: Error | CodedError;
|
|
59
|
+
logger: Logger;
|
|
60
|
+
request: IncomingMessage;
|
|
61
|
+
response: ServerResponse;
|
|
62
|
+
storedResponse: any;
|
|
63
|
+
}
|
|
64
|
+
export declare function defaultProcessEventErrorHandler(args: HTTPReceiverProcessEventErrorHandlerArgs): Promise<boolean>;
|
|
65
|
+
export interface HTTPReceiverUnhandledRequestHandlerArgs {
|
|
66
|
+
logger: Logger;
|
|
67
|
+
request: IncomingMessage;
|
|
68
|
+
response: ServerResponse;
|
|
69
|
+
}
|
|
70
|
+
export declare function defaultUnhandledRequestHandler(args: HTTPReceiverUnhandledRequestHandlerArgs): void;
|
|
33
71
|
/**
|
|
34
72
|
* Receives HTTP requests with Events, Slash Commands, and Actions
|
|
35
73
|
*/
|
|
36
74
|
export default class HTTPReceiver implements Receiver {
|
|
37
75
|
private endpoints;
|
|
76
|
+
private port;
|
|
77
|
+
private routes;
|
|
38
78
|
private signingSecret;
|
|
39
79
|
private processBeforeResponse;
|
|
80
|
+
private signatureVerification;
|
|
40
81
|
private app?;
|
|
41
82
|
requestListener: RequestListener;
|
|
42
83
|
private server?;
|
|
43
84
|
installer?: InstallProvider;
|
|
44
85
|
private installPath?;
|
|
86
|
+
private directInstall?;
|
|
87
|
+
private renderHtmlForInstallPath;
|
|
45
88
|
private installRedirectUriPath?;
|
|
46
89
|
private installUrlOptions?;
|
|
47
90
|
private installCallbackOptions?;
|
|
91
|
+
private stateVerification?;
|
|
48
92
|
private logger;
|
|
49
|
-
|
|
93
|
+
private customPropertiesExtractor;
|
|
94
|
+
private dispatchErrorHandler;
|
|
95
|
+
private processEventErrorHandler;
|
|
96
|
+
private unhandledRequestHandler;
|
|
97
|
+
private unhandledRequestTimeoutMillis;
|
|
98
|
+
constructor({ signingSecret, endpoints, port, customRoutes, logger, logLevel, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, customPropertiesExtractor, dispatchErrorHandler, processEventErrorHandler, unhandledRequestHandler, unhandledRequestTimeoutMillis, }: HTTPReceiverOptions);
|
|
50
99
|
init(app: App): void;
|
|
51
100
|
start(port: number): Promise<Server>;
|
|
52
|
-
start(
|
|
53
|
-
start(portOrListenOptions: number | ListenOptions,
|
|
101
|
+
start(port: string): Promise<Server>;
|
|
102
|
+
start(portOrListenOptions: number | string | ListenOptions, serverOptions?: ServerOptions): Promise<Server>;
|
|
103
|
+
start(portOrListenOptions: number | string | ListenOptions, httpsServerOptions?: HTTPSServerOptions): Promise<HTTPSServer>;
|
|
54
104
|
stop(): Promise<void>;
|
|
55
105
|
private unboundRequestListener;
|
|
56
106
|
private handleIncomingEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTTPReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/HTTPReceiver.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"HTTPReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/HTTPReceiver.ts"],"names":[],"mappings":"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"}
|