@slack/bolt 3.6.0 → 3.9.0

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.
Files changed (93) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -2
  3. package/dist/App.d.ts +60 -4
  4. package/dist/App.d.ts.map +1 -1
  5. package/dist/App.js +179 -100
  6. package/dist/App.js.map +1 -1
  7. package/dist/WorkflowStep.d.ts.map +1 -1
  8. package/dist/WorkflowStep.js +25 -28
  9. package/dist/WorkflowStep.js.map +1 -1
  10. package/dist/conversation-store.d.ts.map +1 -1
  11. package/dist/conversation-store.js +5 -6
  12. package/dist/conversation-store.js.map +1 -1
  13. package/dist/errors.d.ts +13 -5
  14. package/dist/errors.d.ts.map +1 -1
  15. package/dist/errors.js +25 -9
  16. package/dist/errors.js.map +1 -1
  17. package/dist/helpers.d.ts.map +1 -1
  18. package/dist/helpers.js +1 -0
  19. package/dist/helpers.js.map +1 -1
  20. package/dist/index.js +2 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/middleware/builtin.d.ts.map +1 -1
  23. package/dist/middleware/builtin.js +0 -19
  24. package/dist/middleware/builtin.js.map +1 -1
  25. package/dist/middleware/process.d.ts +1 -1
  26. package/dist/middleware/process.d.ts.map +1 -1
  27. package/dist/middleware/process.js +1 -2
  28. package/dist/middleware/process.js.map +1 -1
  29. package/dist/receivers/AwsLambdaReceiver.d.ts +4 -1
  30. package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
  31. package/dist/receivers/AwsLambdaReceiver.js +15 -20
  32. package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
  33. package/dist/receivers/ExpressReceiver.d.ts +20 -7
  34. package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
  35. package/dist/receivers/ExpressReceiver.js +167 -87
  36. package/dist/receivers/ExpressReceiver.js.map +1 -1
  37. package/dist/receivers/HTTPReceiver.d.ts +54 -4
  38. package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
  39. package/dist/receivers/HTTPReceiver.js +240 -94
  40. package/dist/receivers/HTTPReceiver.js.map +1 -1
  41. package/dist/receivers/SocketModeReceiver.d.ts +18 -1
  42. package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
  43. package/dist/receivers/SocketModeReceiver.js +109 -41
  44. package/dist/receivers/SocketModeReceiver.js.map +1 -1
  45. package/dist/receivers/custom-routes.d.ts +14 -0
  46. package/dist/receivers/custom-routes.d.ts.map +1 -0
  47. package/dist/receivers/custom-routes.js +33 -0
  48. package/dist/receivers/custom-routes.js.map +1 -0
  49. package/dist/receivers/http-utils.d.ts +5 -0
  50. package/dist/receivers/http-utils.d.ts.map +1 -0
  51. package/dist/receivers/http-utils.js +35 -0
  52. package/dist/receivers/http-utils.js.map +1 -0
  53. package/dist/receivers/render-html-for-install-path.d.ts +1 -0
  54. package/dist/receivers/render-html-for-install-path.d.ts.map +1 -1
  55. package/dist/receivers/render-html-for-install-path.js +6 -1
  56. package/dist/receivers/render-html-for-install-path.js.map +1 -1
  57. package/dist/receivers/verify-redirect-opts.d.ts +7 -0
  58. package/dist/receivers/verify-redirect-opts.d.ts.map +1 -0
  59. package/dist/receivers/verify-redirect-opts.js +23 -0
  60. package/dist/receivers/verify-redirect-opts.js.map +1 -0
  61. package/dist/receivers/verify-request.d.ts +1 -0
  62. package/dist/receivers/verify-request.d.ts.map +1 -1
  63. package/dist/receivers/verify-request.js +8 -4
  64. package/dist/receivers/verify-request.js.map +1 -1
  65. package/dist/types/actions/block-action.d.ts +8 -1
  66. package/dist/types/actions/block-action.d.ts.map +1 -1
  67. package/dist/types/actions/index.d.ts +4 -4
  68. package/dist/types/actions/index.d.ts.map +1 -1
  69. package/dist/types/actions/index.js.map +1 -1
  70. package/dist/types/actions/workflow-step-edit.d.ts.map +1 -1
  71. package/dist/types/events/base-events.d.ts +5 -5
  72. package/dist/types/events/base-events.d.ts.map +1 -1
  73. package/dist/types/events/base-events.js.map +1 -1
  74. package/dist/types/events/index.d.ts +4 -4
  75. package/dist/types/events/index.d.ts.map +1 -1
  76. package/dist/types/events/index.js.map +1 -1
  77. package/dist/types/events/message-events.d.ts.map +1 -1
  78. package/dist/types/helpers.d.ts +2 -2
  79. package/dist/types/helpers.d.ts.map +1 -1
  80. package/dist/types/middleware.d.ts +10 -1
  81. package/dist/types/middleware.d.ts.map +1 -1
  82. package/dist/types/middleware.js +11 -0
  83. package/dist/types/middleware.js.map +1 -1
  84. package/dist/types/options/index.d.ts +2 -2
  85. package/dist/types/options/index.d.ts.map +1 -1
  86. package/dist/types/receiver.d.ts +3 -0
  87. package/dist/types/receiver.d.ts.map +1 -1
  88. package/dist/types/shortcuts/index.d.ts +2 -2
  89. package/dist/types/shortcuts/index.d.ts.map +1 -1
  90. package/dist/types/shortcuts/index.js.map +1 -1
  91. package/dist/types/shortcuts/message-shortcut.d.ts.map +1 -1
  92. package/dist/types/utilities.d.ts.map +1 -1
  93. package/package.json +18 -20
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.defaultUnhandledRequestHandler = exports.defaultProcessEventErrorHandler = exports.defaultDispatchErrorHandler = void 0;
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
8
  const http_1 = require("http");
4
9
  const https_1 = require("https");
5
10
  const querystring_1 = require("querystring");
@@ -7,28 +12,122 @@ const logger_1 = require("@slack/logger");
7
12
  const oauth_1 = require("@slack/oauth");
8
13
  const url_1 = require("url");
9
14
  const verify_request_1 = require("./verify-request");
10
- const render_html_for_install_path_1 = require("./render-html-for-install-path");
15
+ const verify_redirect_opts_1 = require("./verify-redirect-opts");
16
+ const render_html_for_install_path_1 = __importDefault(require("./render-html-for-install-path"));
11
17
  const errors_1 = require("../errors");
18
+ const custom_routes_1 = require("./custom-routes");
19
+ const http_utils_1 = require("./http-utils");
20
+ // Option keys for tls.createServer() and tls.createSecureContext(), exclusive of those for http.createServer()
21
+ const httpsOptionKeys = [
22
+ 'ALPNProtocols',
23
+ 'clientCertEngine',
24
+ 'enableTrace',
25
+ 'handshakeTimeout',
26
+ 'rejectUnauthorized',
27
+ 'requestCert',
28
+ 'sessionTimeout',
29
+ 'SNICallback',
30
+ 'ticketKeys',
31
+ 'pskCallback',
32
+ 'pskIdentityHint',
33
+ 'ca',
34
+ 'cert',
35
+ 'sigalgs',
36
+ 'ciphers',
37
+ 'clientCertEngine',
38
+ 'crl',
39
+ 'dhparam',
40
+ 'ecdhCurve',
41
+ 'honorCipherOrder',
42
+ 'key',
43
+ 'privateKeyEngine',
44
+ 'privateKeyIdentifier',
45
+ 'maxVersion',
46
+ 'minVersion',
47
+ 'passphrase',
48
+ 'pfx',
49
+ 'secureOptions',
50
+ 'secureProtocol',
51
+ 'sessionIdContext',
52
+ ];
53
+ const missingServerErrorDescription = 'The receiver cannot be started because private state was mutated. Please report this to the maintainers.';
54
+ // The default dispathErrorHandler implementation:
55
+ // Developers can customize this behavior by passing dispatchErrorHandler to the constructor
56
+ // Note that it was not possible to make this function async due to the limitation of http module
57
+ function defaultDispatchErrorHandler(args) {
58
+ const { error, logger, request, response } = args;
59
+ if ('code' in error) {
60
+ if (error.code === errors_1.ErrorCode.HTTPReceiverDeferredRequestError) {
61
+ logger.info(`Unhandled HTTP request (${request.method}) made to ${request.url}`);
62
+ response.writeHead(404);
63
+ response.end();
64
+ return;
65
+ }
66
+ }
67
+ logger.error(`An unexpected error occurred during a request (${request.method}) made to ${request.url}`);
68
+ logger.debug(`Error details: ${error}`);
69
+ response.writeHead(500);
70
+ response.end();
71
+ }
72
+ exports.defaultDispatchErrorHandler = defaultDispatchErrorHandler;
73
+ // The default processEventErrorHandler implementation:
74
+ // Developers can customize this behavior by passing processEventErrorHandler to the constructor
75
+ async function defaultProcessEventErrorHandler(args) {
76
+ const { error, response, logger, storedResponse } = args;
77
+ if ('code' in error) {
78
+ // CodedError has code: string
79
+ const errorCode = error.code;
80
+ if (errorCode === errors_1.ErrorCode.AuthorizationError) {
81
+ // authorize function threw an exception, which means there is no valid installation data
82
+ response.writeHead(401);
83
+ response.end();
84
+ return true;
85
+ }
86
+ }
87
+ logger.error('An unhandled error occurred while Bolt processed an event');
88
+ logger.debug(`Error details: ${error}, storedResponse: ${storedResponse}`);
89
+ response.writeHead(500);
90
+ response.end();
91
+ return false;
92
+ }
93
+ exports.defaultProcessEventErrorHandler = defaultProcessEventErrorHandler;
94
+ // The default unhandledRequestHandler implementation:
95
+ // Developers can customize this behavior by passing unhandledRequestHandler to the constructor
96
+ // Note that this method cannot be an async function to align with the implementation using setTimeout
97
+ function defaultUnhandledRequestHandler(args) {
98
+ const { logger } = args;
99
+ logger.error('An incoming event was not acknowledged within 3 seconds. ' +
100
+ 'Ensure that the ack() argument is called in a listener.');
101
+ }
102
+ exports.defaultUnhandledRequestHandler = defaultUnhandledRequestHandler;
12
103
  /**
13
104
  * Receives HTTP requests with Events, Slash Commands, and Actions
14
105
  */
15
106
  class HTTPReceiver {
16
- constructor({ signingSecret = '', endpoints = ['/slack/events'], logger = undefined, logLevel = logger_1.LogLevel.INFO, processBeforeResponse = false, clientId = undefined, clientSecret = undefined, stateSecret = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, }) {
107
+ constructor({ signingSecret = '', endpoints = ['/slack/events'], port = 3000, customRoutes = [], logger = undefined, logLevel = logger_1.LogLevel.INFO, processBeforeResponse = false, signatureVerification = true, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, customPropertiesExtractor = (_req) => ({}), dispatchErrorHandler = defaultDispatchErrorHandler, processEventErrorHandler = defaultProcessEventErrorHandler, unhandledRequestHandler = defaultUnhandledRequestHandler, unhandledRequestTimeoutMillis = 3001, }) {
17
108
  var _a, _b, _c;
18
109
  // Initialize instance variables, substituting defaults for each value
19
110
  this.signingSecret = signingSecret;
20
111
  this.processBeforeResponse = processBeforeResponse;
21
- this.logger =
22
- logger !== null && logger !== void 0 ? logger : (() => {
23
- const defaultLogger = new logger_1.ConsoleLogger();
24
- defaultLogger.setLevel(logLevel);
25
- return defaultLogger;
26
- })();
112
+ this.signatureVerification = signatureVerification;
113
+ this.logger = logger !== null && logger !== void 0 ? logger : (() => {
114
+ const defaultLogger = new logger_1.ConsoleLogger();
115
+ defaultLogger.setLevel(logLevel);
116
+ return defaultLogger;
117
+ })();
27
118
  this.endpoints = Array.isArray(endpoints) ? endpoints : [endpoints];
119
+ this.port = (installerOptions === null || installerOptions === void 0 ? void 0 : installerOptions.port) ? installerOptions.port : port;
120
+ this.routes = (0, custom_routes_1.prepareRoutes)(customRoutes);
121
+ // Verify redirect options if supplied, throws coded error if invalid
122
+ (0, verify_redirect_opts_1.verifyRedirectOpts)({ redirectUri, redirectUriPath: installerOptions.redirectUriPath });
123
+ this.stateVerification = installerOptions.stateVerification;
28
124
  // Initialize InstallProvider when it's required options are provided
29
125
  if (clientId !== undefined &&
30
126
  clientSecret !== undefined &&
31
- (stateSecret !== undefined || installerOptions.stateStore !== undefined)) {
127
+ (this.stateVerification === false || // state store not needed
128
+ stateSecret !== undefined ||
129
+ installerOptions.stateStore !== undefined) // user provided state store
130
+ ) {
32
131
  this.installer = new oauth_1.InstallProvider({
33
132
  clientId,
34
133
  clientSecret,
@@ -37,20 +136,31 @@ class HTTPReceiver {
37
136
  logger,
38
137
  logLevel,
39
138
  stateStore: installerOptions.stateStore,
139
+ stateVerification: installerOptions.stateVerification,
40
140
  authVersion: installerOptions.authVersion,
41
141
  clientOptions: installerOptions.clientOptions,
42
142
  authorizationUrl: installerOptions.authorizationUrl,
43
143
  });
44
144
  // Store the remaining instance variables that are related to using the InstallProvider
45
145
  this.installPath = (_a = installerOptions.installPath) !== null && _a !== void 0 ? _a : '/slack/install';
146
+ this.directInstall = installerOptions.directInstall !== undefined && installerOptions.directInstall;
46
147
  this.installRedirectUriPath = (_b = installerOptions.redirectUriPath) !== null && _b !== void 0 ? _b : '/slack/oauth_redirect';
148
+ this.installCallbackOptions = (_c = installerOptions.callbackOptions) !== null && _c !== void 0 ? _c : {};
47
149
  this.installUrlOptions = {
48
150
  scopes: scopes !== null && scopes !== void 0 ? scopes : [],
49
151
  userScopes: installerOptions.userScopes,
50
152
  metadata: installerOptions.metadata,
153
+ redirectUri,
51
154
  };
52
- this.installCallbackOptions = (_c = installerOptions.callbackOptions) !== null && _c !== void 0 ? _c : {};
53
155
  }
156
+ this.renderHtmlForInstallPath = installerOptions.renderHtmlForInstallPath !== undefined ?
157
+ installerOptions.renderHtmlForInstallPath :
158
+ render_html_for_install_path_1.default;
159
+ this.customPropertiesExtractor = customPropertiesExtractor;
160
+ this.dispatchErrorHandler = dispatchErrorHandler;
161
+ this.processEventErrorHandler = processEventErrorHandler;
162
+ this.unhandledRequestHandler = unhandledRequestHandler;
163
+ this.unhandledRequestTimeoutMillis = unhandledRequestTimeoutMillis;
54
164
  // Assign the requestListener property by binding the unboundRequestListener to this instance
55
165
  this.requestListener = this.unboundRequestListener.bind(this);
56
166
  }
@@ -72,17 +182,14 @@ class HTTPReceiver {
72
182
  this.requestListener(req, res);
73
183
  }
74
184
  catch (error) {
75
- if (error.code === errors_1.ErrorCode.HTTPReceiverDeferredRequestError) {
76
- this.logger.info('An unhandled request was ignored');
77
- res.writeHead(404);
78
- res.end();
79
- }
80
- else {
81
- this.logger.error('An unexpected error was encountered');
82
- this.logger.debug(`Error details: ${error}`);
83
- res.writeHead(500);
84
- res.end();
85
- }
185
+ // You may get an error here only when the requestListener failed
186
+ // to start processing incoming requests, or your app receives a request to an unexpected path.
187
+ this.dispatchErrorHandler({
188
+ error: error,
189
+ logger: this.logger,
190
+ request: req,
191
+ response: res,
192
+ });
86
193
  }
87
194
  });
88
195
  return new Promise((resolve, reject) => {
@@ -107,35 +214,49 @@ class HTTPReceiver {
107
214
  // this.server?.removeAllListeners();
108
215
  this.server = undefined;
109
216
  });
110
- this.server.listen(portOrListenOptions, () => {
217
+ let listenOptions = this.port;
218
+ if (portOrListenOptions !== undefined) {
219
+ if (typeof portOrListenOptions === 'number') {
220
+ listenOptions = portOrListenOptions;
221
+ }
222
+ else if (typeof portOrListenOptions === 'string') {
223
+ listenOptions = Number(portOrListenOptions);
224
+ }
225
+ else if (typeof portOrListenOptions === 'object') {
226
+ listenOptions = portOrListenOptions;
227
+ }
228
+ }
229
+ this.server.listen(listenOptions, () => {
111
230
  if (this.server === undefined) {
112
231
  return reject(new errors_1.ReceiverInconsistentStateError(missingServerErrorDescription));
113
232
  }
114
- resolve(this.server);
233
+ return resolve(this.server);
115
234
  });
116
235
  });
117
236
  }
118
237
  // TODO: the arguments should be defined as the arguments to close() (which happen to be none), but for sake of
119
238
  // generic types
120
239
  stop() {
240
+ if (this.server === undefined) {
241
+ return Promise.reject(new errors_1.ReceiverInconsistentStateError('The receiver cannot be stopped because it was not started.'));
242
+ }
121
243
  return new Promise((resolve, reject) => {
122
- if (this.server === undefined) {
123
- return reject(new errors_1.ReceiverInconsistentStateError('The receiver cannot be stopped because it was not started.'));
124
- }
125
- this.server.close((error) => {
244
+ var _a;
245
+ (_a = this.server) === null || _a === void 0 ? void 0 : _a.close((error) => {
126
246
  if (error !== undefined) {
127
247
  return reject(error);
128
248
  }
129
249
  this.server = undefined;
130
- resolve();
250
+ return resolve();
131
251
  });
132
252
  });
133
253
  }
134
254
  unboundRequestListener(req, res) {
135
255
  // Route the request
136
- // NOTE: the domain and scheme of the following URL object are not necessarily accurate. The URL object is only
137
- // meant to be used to parse the path and query
138
- const { pathname: path } = new url_1.URL(req.url, `http://${req.headers.host}`);
256
+ // NOTE: the domain and scheme are irrelevant here.
257
+ // The URL object is only used to safely obtain the path to match
258
+ const { pathname: path } = new url_1.URL(req.url, 'http://localhost');
259
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
139
260
  const method = req.method.toUpperCase();
140
261
  if (this.endpoints.includes(path) && method === 'POST') {
141
262
  // Handle incoming ReceiverEvent
@@ -143,19 +264,32 @@ class HTTPReceiver {
143
264
  }
144
265
  if (this.installer !== undefined && method === 'GET') {
145
266
  // When installer is defined then installPath and installRedirectUriPath are always defined
267
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
146
268
  const [installPath, installRedirectUriPath] = [this.installPath, this.installRedirectUriPath];
269
+ // Visiting the installation endpoint
147
270
  if (path === installPath) {
148
271
  // Render installation path (containing Add to Slack button)
149
272
  return this.handleInstallPathRequest(res);
150
273
  }
274
+ // Installation has been initiated
151
275
  if (path === installRedirectUriPath) {
152
276
  // Handle OAuth callback request (to exchange authorization grant for a new access token)
153
277
  return this.handleInstallRedirectRequest(req, res);
154
278
  }
155
279
  }
280
+ // Handle custom routes
281
+ if (Object.keys(this.routes).length) {
282
+ const match = this.routes[path] && this.routes[path][method] !== undefined;
283
+ if (match) {
284
+ return this.routes[path][method](req, res);
285
+ }
286
+ }
156
287
  // If the request did not match the previous conditions, an error is thrown. The error can be caught by the
157
288
  // the caller in order to defer to other routing logic (similar to calling `next()` in connect middleware).
158
- throw new errors_1.HTTPReceiverDeferredRequestError('Unhandled HTTP request', req, res);
289
+ // If you would like to customize the HTTP repsonse for this pattern,
290
+ // implement your own dispatchErrorHandler that handles an exception
291
+ // with ErrorCode.HTTPReceiverDeferredRequestError.
292
+ throw new errors_1.HTTPReceiverDeferredRequestError(`Unhandled HTTP request (${method}) made to ${path}`, req, res);
159
293
  }
160
294
  handleIncomingEvent(req, res) {
161
295
  // Wrapped in an async closure for ease of using await
@@ -165,10 +299,15 @@ class HTTPReceiver {
165
299
  let body;
166
300
  // Verify authenticity
167
301
  try {
168
- bufferedReq = await verify_request_1.verify({ signingSecret: this.signingSecret }, req);
302
+ bufferedReq = await (0, verify_request_1.verify)({
303
+ // If enabled: false, this method returns bufferredReq without verification
304
+ enabled: this.signatureVerification,
305
+ signingSecret: this.signingSecret,
306
+ }, req);
169
307
  }
170
308
  catch (err) {
171
- this.logger.warn(`Request verification failed: ${err.message}`);
309
+ const e = err;
310
+ this.logger.warn(`Request verification failed: ${e.message}`);
172
311
  res.writeHead(401);
173
312
  res.end();
174
313
  return;
@@ -181,13 +320,13 @@ class HTTPReceiver {
181
320
  body = parseBody(bufferedReq);
182
321
  }
183
322
  catch (err) {
184
- this.logger.warn(`Malformed request body: ${err.message}`);
323
+ const e = err;
324
+ this.logger.warn(`Malformed request body: ${e.message}`);
185
325
  res.writeHead(400);
186
326
  res.end();
187
327
  return;
188
328
  }
189
329
  // Handle SSL checks
190
- // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
191
330
  if (body.ssl_check) {
192
331
  res.writeHead(200);
193
332
  res.end();
@@ -203,10 +342,13 @@ class HTTPReceiver {
203
342
  let isAcknowledged = false;
204
343
  setTimeout(() => {
205
344
  if (!isAcknowledged) {
206
- this.logger.error('An incoming event was not acknowledged within 3 seconds. ' +
207
- 'Ensure that the ack() argument is called in a listener.');
345
+ this.unhandledRequestHandler({
346
+ logger: this.logger,
347
+ request: req,
348
+ response: res,
349
+ });
208
350
  }
209
- }, 3001);
351
+ }, this.unhandledRequestTimeoutMillis);
210
352
  // Structure the ReceiverEvent
211
353
  let storedResponse;
212
354
  const event = {
@@ -218,7 +360,8 @@ class HTTPReceiver {
218
360
  }
219
361
  isAcknowledged = true;
220
362
  if (this.processBeforeResponse) {
221
- // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
363
+ // In the case where processBeforeResponse: true is enabled, we don't send the HTTP response immediately.
364
+ // We hold off until the listener execution is completed.
222
365
  if (!response) {
223
366
  storedResponse = '';
224
367
  }
@@ -228,7 +371,6 @@ class HTTPReceiver {
228
371
  this.logger.debug('ack() response stored');
229
372
  }
230
373
  else {
231
- // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
232
374
  if (!response) {
233
375
  res.writeHead(200);
234
376
  res.end();
@@ -244,11 +386,15 @@ class HTTPReceiver {
244
386
  this.logger.debug('ack() response sent');
245
387
  }
246
388
  },
389
+ retryNum: (0, http_utils_1.extractRetryNum)(req),
390
+ retryReason: (0, http_utils_1.extractRetryReason)(req),
391
+ customProperties: this.customPropertiesExtractor(bufferedReq),
247
392
  };
248
393
  // Send the event to the app for processing
249
394
  try {
250
395
  await ((_a = this.app) === null || _a === void 0 ? void 0 : _a.processEvent(event));
251
396
  if (storedResponse !== undefined) {
397
+ // in the case of processBeforeResponse: true
252
398
  if (typeof storedResponse === 'string') {
253
399
  res.writeHead(200);
254
400
  res.end(storedResponse);
@@ -260,11 +406,19 @@ class HTTPReceiver {
260
406
  this.logger.debug('stored response sent');
261
407
  }
262
408
  }
263
- catch (err) {
264
- this.logger.error('An unhandled error occurred while Bolt processed an event');
265
- this.logger.debug(`Error details: ${err}, storedResponse: ${storedResponse}`);
266
- res.writeHead(500);
267
- res.end();
409
+ catch (error) {
410
+ const acknowledgedByHandler = await this.processEventErrorHandler({
411
+ error: error,
412
+ logger: this.logger,
413
+ request: req,
414
+ response: res,
415
+ storedResponse,
416
+ });
417
+ if (acknowledgedByHandler) {
418
+ // If the value is false, we don't touch the value as a race condition
419
+ // with ack() call may occur especially when processBeforeResponse: false
420
+ isAcknowledged = true;
421
+ }
268
422
  }
269
423
  })();
270
424
  }
@@ -278,32 +432,58 @@ class HTTPReceiver {
278
432
  try {
279
433
  // This function is only called from within unboundRequestListener after checking that installer is defined, and
280
434
  // when installer is defined then installUrlOptions is always defined too.
435
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
281
436
  const [installer, installUrlOptions] = [this.installer, this.installUrlOptions];
282
437
  // Generate the URL for the "Add to Slack" button.
283
- const url = await installer.generateInstallUrl(installUrlOptions);
284
- // Generate HTML response body
285
- const body = render_html_for_install_path_1.renderHtmlForInstallPath(url);
286
- // Serve a basic HTML page including the "Add to Slack" button.
287
- // Regarding headers:
288
- // - Content-Type is usually automatically detected by browsers
289
- // - Content-Length is not used because Transfer-Encoding='chunked' is automatically used.
290
- res.writeHead(200);
291
- res.end(body);
438
+ const url = await installer.generateInstallUrl(installUrlOptions, this.stateVerification);
439
+ if (this.directInstall !== undefined && this.directInstall) {
440
+ // If a Slack app sets "Direct Install URL" in the Slack app configruation,
441
+ // the installation flow of the app should start with the Slack authorize URL.
442
+ // See https://api.slack.com/start/distributing/directory#direct_install for more details.
443
+ res.writeHead(302, { Location: url });
444
+ res.end('');
445
+ }
446
+ else {
447
+ // The installation starts from a landing page served by this app.
448
+ // Generate HTML response body
449
+ const body = this.renderHtmlForInstallPath(url);
450
+ // Serve a basic HTML page including the "Add to Slack" button.
451
+ // Regarding headers:
452
+ // - Content-Type is usually automatically detected by browsers
453
+ // - Content-Length is not used because Transfer-Encoding='chunked' is automatically used.
454
+ res.writeHead(200);
455
+ res.end(body);
456
+ }
292
457
  }
293
458
  catch (err) {
459
+ const e = err;
294
460
  this.logger.error('An unhandled error occurred while Bolt processed a request to the installation path');
295
- this.logger.debug(`Error details: ${err}`);
461
+ this.logger.debug(`Error details: ${e}`);
296
462
  }
297
463
  })();
298
464
  }
299
465
  handleInstallRedirectRequest(req, res) {
300
466
  // This function is only called from within unboundRequestListener after checking that installer is defined, and
301
467
  // when installer is defined then installCallbackOptions is always defined too.
302
- const [installer, installCallbackOptions] = [this.installer, this.installCallbackOptions];
303
- installer.handleCallback(req, res, installCallbackOptions).catch((err) => {
468
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
469
+ const [installer, installCallbackOptions, installUrlOptions] = [
470
+ this.installer,
471
+ this.installCallbackOptions,
472
+ this.installUrlOptions,
473
+ ];
474
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
475
+ const errorHandler = (err) => {
304
476
  this.logger.error('HTTPReceiver encountered an unexpected error while handling the OAuth install redirect. Please report to the maintainers.');
305
477
  this.logger.debug(`Error details: ${err}`);
306
- });
478
+ };
479
+ if (this.stateVerification === false) {
480
+ // when stateVerification is disabled pass install options directly to handler
481
+ // since they won't be encoded in the state param of the generated url
482
+ installer.handleCallback(req, res, installCallbackOptions, installUrlOptions).catch(errorHandler);
483
+ }
484
+ else {
485
+ installer.handleCallback(req, res, installCallbackOptions).catch(errorHandler);
486
+ }
307
487
  }
308
488
  }
309
489
  exports.default = HTTPReceiver;
@@ -312,7 +492,7 @@ function parseBody(req) {
312
492
  const bodyAsString = req.rawBody.toString();
313
493
  const contentType = req.headers['content-type'];
314
494
  if (contentType === 'application/x-www-form-urlencoded') {
315
- const parsedQs = querystring_1.parse(bodyAsString);
495
+ const parsedQs = (0, querystring_1.parse)(bodyAsString);
316
496
  const { payload } = parsedQs;
317
497
  if (typeof payload === 'string') {
318
498
  return JSON.parse(payload);
@@ -321,38 +501,4 @@ function parseBody(req) {
321
501
  }
322
502
  return JSON.parse(bodyAsString);
323
503
  }
324
- // Option keys for tls.createServer() and tls.createSecureContext(), exclusive of those for http.createServer()
325
- const httpsOptionKeys = [
326
- 'ALPNProtocols',
327
- 'clientCertEngine',
328
- 'enableTrace',
329
- 'handshakeTimeout',
330
- 'rejectUnauthorized',
331
- 'requestCert',
332
- 'sessionTimeout',
333
- 'SNICallback',
334
- 'ticketKeys',
335
- 'pskCallback',
336
- 'pskIdentityHint',
337
- 'ca',
338
- 'cert',
339
- 'sigalgs',
340
- 'ciphers',
341
- 'clientCertEngine',
342
- 'crl',
343
- 'dhparam',
344
- 'ecdhCurve',
345
- 'honorCipherOrder',
346
- 'key',
347
- 'privateKeyEngine',
348
- 'privateKeyIdentifier',
349
- 'maxVersion',
350
- 'minVersion',
351
- 'passphrase',
352
- 'pfx',
353
- 'secureOptions',
354
- 'secureProtocol',
355
- 'sessionIdContext',
356
- ];
357
- const missingServerErrorDescription = 'The receiver cannot be started because private state was mutated. Please report this to the maintainers.';
358
504
  //# sourceMappingURL=HTTPReceiver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HTTPReceiver.js","sourceRoot":"","sources":["../../src/receivers/HTTPReceiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HTTPReceiver.js","sourceRoot":"","sources":["../../src/receivers/HTTPReceiver.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,39 @@
1
+ /// <reference types="node" />
1
2
  import { SocketModeClient } from '@slack/socket-mode';
3
+ import { IncomingMessage, ServerResponse } from 'http';
2
4
  import { Logger, LogLevel } from '@slack/logger';
3
5
  import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions } from '@slack/oauth';
4
6
  import { AppsConnectionsOpenResponse } from '@slack/web-api';
5
7
  import App from '../App';
6
8
  import { Receiver } from '../types';
9
+ import { StringIndexed } from '../types/helpers';
7
10
  export interface SocketModeReceiverOptions {
8
11
  logger?: Logger;
9
12
  logLevel?: LogLevel;
10
13
  clientId?: string;
11
14
  clientSecret?: string;
12
15
  stateSecret?: InstallProviderOptions['stateSecret'];
16
+ redirectUri?: string;
13
17
  installationStore?: InstallProviderOptions['installationStore'];
14
18
  scopes?: InstallURLOptions['scopes'];
15
19
  installerOptions?: InstallerOptions;
16
20
  appToken: string;
21
+ customRoutes?: CustomRoute[];
22
+ customPropertiesExtractor?: (args: any) => StringIndexed;
23
+ }
24
+ export interface CustomRoute {
25
+ path: string;
26
+ method: string | string[];
27
+ handler: (req: IncomingMessage, res: ServerResponse) => void;
17
28
  }
18
29
  interface InstallerOptions {
19
30
  stateStore?: InstallProviderOptions['stateStore'];
31
+ stateVerification?: InstallProviderOptions['stateVerification'];
20
32
  authVersion?: InstallProviderOptions['authVersion'];
21
33
  metadata?: InstallURLOptions['metadata'];
22
34
  installPath?: string;
35
+ directInstall?: boolean;
36
+ renderHtmlForInstallPath?: (url: string) => string;
23
37
  redirectUriPath?: string;
24
38
  callbackOptions?: CallbackOptions;
25
39
  userScopes?: InstallURLOptions['userScopes'];
@@ -35,7 +49,10 @@ export default class SocketModeReceiver implements Receiver {
35
49
  private app;
36
50
  private logger;
37
51
  installer: InstallProvider | undefined;
38
- constructor({ appToken, logger, logLevel, clientId, clientSecret, stateSecret, installationStore, scopes, installerOptions, }: SocketModeReceiverOptions);
52
+ private httpServer?;
53
+ private httpServerPort?;
54
+ private routes;
55
+ constructor({ appToken, logger, logLevel, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, customRoutes, customPropertiesExtractor, }: SocketModeReceiverOptions);
39
56
  init(app: App): void;
40
57
  start(): Promise<AppsConnectionsOpenResponse>;
41
58
  stop(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SocketModeReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAiB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAKnD,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACpD,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAChE,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACxD,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,QAAQ;IAElD,MAAM,EAAE,gBAAgB,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAkB;IAE7B,OAAO,CAAC,MAAM,CAAS;IAEhB,SAAS,EAAE,eAAe,GAAG,SAAS,CAAa;gBAE9C,EACV,QAAQ,EACR,MAAkB,EAClB,QAAwB,EACxB,QAAoB,EACpB,YAAwB,EACxB,WAAuB,EACvB,iBAA6B,EAC7B,MAAkB,EAClB,gBAAqB,GACtB,EAAE,yBAAyB;IAmFrB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAIpB,KAAK,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAK7C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
1
+ {"version":3,"file":"SocketModeReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"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"}