@slack/bolt 3.6.0-hermesBeta.1 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -2
  3. package/dist/App.d.ts +61 -6
  4. package/dist/App.d.ts.map +1 -1
  5. package/dist/App.js +161 -91
  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 +4 -4
  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 +0 -4
  23. package/dist/middleware/builtin.d.ts.map +1 -1
  24. package/dist/middleware/builtin.js +1 -35
  25. package/dist/middleware/builtin.js.map +1 -1
  26. package/dist/middleware/process.d.ts +1 -1
  27. package/dist/middleware/process.d.ts.map +1 -1
  28. package/dist/middleware/process.js +1 -2
  29. package/dist/middleware/process.js.map +1 -1
  30. package/dist/receivers/AwsLambdaReceiver.d.ts +4 -1
  31. package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
  32. package/dist/receivers/AwsLambdaReceiver.js +15 -20
  33. package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
  34. package/dist/receivers/ExpressReceiver.d.ts +20 -7
  35. package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
  36. package/dist/receivers/ExpressReceiver.js +167 -87
  37. package/dist/receivers/ExpressReceiver.js.map +1 -1
  38. package/dist/receivers/HTTPReceiver.d.ts +51 -2
  39. package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
  40. package/dist/receivers/HTTPReceiver.js +234 -91
  41. package/dist/receivers/HTTPReceiver.js.map +1 -1
  42. package/dist/receivers/SocketModeReceiver.d.ts +18 -1
  43. package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
  44. package/dist/receivers/SocketModeReceiver.js +105 -41
  45. package/dist/receivers/SocketModeReceiver.js.map +1 -1
  46. package/dist/receivers/custom-routes.d.ts +14 -0
  47. package/dist/receivers/custom-routes.d.ts.map +1 -0
  48. package/dist/receivers/custom-routes.js +33 -0
  49. package/dist/receivers/custom-routes.js.map +1 -0
  50. package/dist/receivers/http-utils.d.ts +5 -0
  51. package/dist/receivers/http-utils.d.ts.map +1 -0
  52. package/dist/receivers/http-utils.js +35 -0
  53. package/dist/receivers/http-utils.js.map +1 -0
  54. package/dist/receivers/render-html-for-install-path.d.ts +1 -0
  55. package/dist/receivers/render-html-for-install-path.d.ts.map +1 -1
  56. package/dist/receivers/render-html-for-install-path.js +6 -1
  57. package/dist/receivers/render-html-for-install-path.js.map +1 -1
  58. package/dist/receivers/verify-redirect-opts.d.ts +7 -0
  59. package/dist/receivers/verify-redirect-opts.d.ts.map +1 -0
  60. package/dist/receivers/verify-redirect-opts.js +23 -0
  61. package/dist/receivers/verify-redirect-opts.js.map +1 -0
  62. package/dist/receivers/verify-request.d.ts +1 -0
  63. package/dist/receivers/verify-request.d.ts.map +1 -1
  64. package/dist/receivers/verify-request.js +8 -4
  65. package/dist/receivers/verify-request.js.map +1 -1
  66. package/dist/types/actions/block-action.d.ts +8 -1
  67. package/dist/types/actions/block-action.d.ts.map +1 -1
  68. package/dist/types/actions/index.d.ts +4 -4
  69. package/dist/types/actions/index.d.ts.map +1 -1
  70. package/dist/types/actions/index.js.map +1 -1
  71. package/dist/types/actions/workflow-step-edit.d.ts.map +1 -1
  72. package/dist/types/events/base-events.d.ts +6 -30
  73. package/dist/types/events/base-events.d.ts.map +1 -1
  74. package/dist/types/events/base-events.js +2 -0
  75. package/dist/types/events/base-events.js.map +1 -1
  76. package/dist/types/events/index.d.ts +4 -4
  77. package/dist/types/events/index.d.ts.map +1 -1
  78. package/dist/types/events/index.js.map +1 -1
  79. package/dist/types/events/message-events.d.ts.map +1 -1
  80. package/dist/types/helpers.d.ts +2 -2
  81. package/dist/types/helpers.d.ts.map +1 -1
  82. package/dist/types/middleware.d.ts +10 -1
  83. package/dist/types/middleware.d.ts.map +1 -1
  84. package/dist/types/middleware.js +11 -0
  85. package/dist/types/middleware.js.map +1 -1
  86. package/dist/types/options/index.d.ts +2 -2
  87. package/dist/types/options/index.d.ts.map +1 -1
  88. package/dist/types/receiver.d.ts +3 -0
  89. package/dist/types/receiver.d.ts.map +1 -1
  90. package/dist/types/shortcuts/index.d.ts +2 -2
  91. package/dist/types/shortcuts/index.d.ts.map +1 -1
  92. package/dist/types/shortcuts/index.js.map +1 -1
  93. package/dist/types/shortcuts/message-shortcut.d.ts.map +1 -1
  94. package/dist/types/utilities.d.ts.map +1 -1
  95. package/package.json +17 -19
package/dist/App.js CHANGED
@@ -11,14 +11,22 @@ const axios_1 = __importDefault(require("axios"));
11
11
  const SocketModeReceiver_1 = __importDefault(require("./receivers/SocketModeReceiver"));
12
12
  const HTTPReceiver_1 = __importDefault(require("./receivers/HTTPReceiver"));
13
13
  const builtin_1 = require("./middleware/builtin");
14
- const process_1 = require("./middleware/process");
14
+ const process_1 = __importDefault(require("./middleware/process"));
15
15
  const conversation_store_1 = require("./conversation-store");
16
16
  const helpers_1 = require("./helpers");
17
17
  const errors_1 = require("./errors");
18
+ const middleware_1 = require("./types/middleware");
18
19
  // eslint-disable-next-line import/order
19
20
  const allSettled = require("promise.allsettled"); // eslint-disable-line @typescript-eslint/no-require-imports
20
- // eslint-disable-next-line @typescript-eslint/no-require-imports
21
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, import/no-commonjs
21
22
  const packageJson = require('../package.json'); // eslint-disable-line @typescript-eslint/no-var-requires
23
+ // ----------------------------
24
+ // For listener registration methods
25
+ const validViewTypes = ['view_closed', 'view_submission'];
26
+ // ----------------------------
27
+ // For the constructor
28
+ const tokenUsage = 'Apps used in one workspace should be initialized with a token. Apps used in many workspaces ' +
29
+ 'should be initialized with oauth installer or authorize.';
22
30
  var logger_2 = require("@slack/logger");
23
31
  Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logger_2.LogLevel; } });
24
32
  class WebClientPool {
@@ -39,7 +47,7 @@ class WebClientPool {
39
47
  * A Slack App
40
48
  */
41
49
  class App {
42
- constructor({ signingSecret = undefined, endpoints = undefined, agent = undefined, clientTls = undefined, receiver = undefined, convoStore = undefined, token = undefined, appToken = undefined, botId = undefined, botUserId = undefined, authorize = undefined, logger = undefined, logLevel = undefined, ignoreSelf = true, clientOptions = undefined, processBeforeResponse = false, clientId = undefined, clientSecret = undefined, stateSecret = undefined, installationStore = undefined, scopes = undefined, installerOptions = undefined, socketMode = undefined, developerMode = false, tokenVerificationEnabled = true, } = {}) {
50
+ constructor({ signingSecret = undefined, endpoints = undefined, port = undefined, customRoutes = undefined, agent = undefined, clientTls = undefined, receiver = undefined, convoStore = undefined, token = undefined, appToken = undefined, botId = undefined, botUserId = undefined, authorize = undefined, logger = undefined, logLevel = undefined, ignoreSelf = true, clientOptions = undefined, processBeforeResponse = false, signatureVerification = true, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = undefined, socketMode = undefined, developerMode = false, tokenVerificationEnabled = true, extendedErrorHandler = false, } = {}) {
43
51
  // Some payloads don't have teamId anymore. So we use EnterpriseId in those scenarios
44
52
  this.clients = {};
45
53
  // this.logLevel = logLevel;
@@ -56,6 +64,7 @@ class App {
56
64
  // Set logLevel to Info if one wasn't passed in
57
65
  this.logLevel = logLevel !== null && logLevel !== void 0 ? logLevel : logger_1.LogLevel.INFO;
58
66
  }
67
+ // Set up logger
59
68
  if (typeof logger === 'undefined') {
60
69
  // Initialize with the default logger
61
70
  const consoleLogger = new logger_1.ConsoleLogger();
@@ -68,7 +77,11 @@ class App {
68
77
  if (typeof this.logLevel !== 'undefined' && this.logger.getLevel() !== this.logLevel) {
69
78
  this.logger.setLevel(this.logLevel);
70
79
  }
80
+ // Error-related properties used to later determine args passed into the error handler
81
+ this.hasCustomErrorHandler = false;
71
82
  this.errorHandler = defaultErrorHandler(this.logger);
83
+ this.extendedErrorHandler = extendedErrorHandler;
84
+ // Set up client options
72
85
  this.clientOptions = clientOptions !== undefined ? clientOptions : {};
73
86
  if (agent !== undefined && this.clientOptions.agent === undefined) {
74
87
  this.clientOptions.agent = agent;
@@ -81,11 +94,7 @@ class App {
81
94
  this.clientOptions.logLevel = logLevel;
82
95
  }
83
96
  else {
84
- if (logLevel !== undefined) {
85
- // If the constructor has both, logLevel is ignored
86
- this.logger.warn("As `logger` is passed as well, `logLevel` argument won't be used. Set the log level to the `logger` instance instead.");
87
- }
88
- // Since v3.4, WebClient starts sharing loggger with App
97
+ // Since v3.4, WebClient starts sharing logger with App
89
98
  this.clientOptions.logger = this.logger;
90
99
  }
91
100
  // The public WebClient instance (app.client)
@@ -108,6 +117,11 @@ class App {
108
117
  clientOptions: this.clientOptions,
109
118
  ...installerOptions,
110
119
  };
120
+ if (socketMode && port !== undefined && this.installerOptions.port === undefined) {
121
+ // As SocketModeReceiver uses a custom port number to listen on only for the OAuth flow,
122
+ // only installerOptions.port is available in the constructor arguments.
123
+ this.installerOptions.port = port;
124
+ }
111
125
  if (this.developerMode &&
112
126
  this.installerOptions &&
113
127
  (typeof this.installerOptions.callbackOptions === 'undefined' ||
@@ -123,8 +137,12 @@ class App {
123
137
  },
124
138
  };
125
139
  }
126
- // Check for required arguments of HTTPReceiver
140
+ // Initialize receiver
127
141
  if (receiver !== undefined) {
142
+ // Custom receiver
143
+ if (this.socketMode) {
144
+ throw new errors_1.AppInitializationError('receiver cannot be passed when socketMode is set to true');
145
+ }
128
146
  this.receiver = receiver;
129
147
  }
130
148
  else if (this.socketMode) {
@@ -138,14 +156,16 @@ class App {
138
156
  clientId,
139
157
  clientSecret,
140
158
  stateSecret,
159
+ redirectUri,
141
160
  installationStore,
142
161
  scopes,
143
162
  logger,
144
163
  logLevel: this.logLevel,
145
164
  installerOptions: this.installerOptions,
165
+ customRoutes,
146
166
  });
147
167
  }
148
- else if (signingSecret === undefined) {
168
+ else if (signatureVerification && signingSecret === undefined) {
149
169
  // No custom receiver
150
170
  throw new errors_1.AppInitializationError('Signing secret not found, so could not initialize the default receiver. Set a signing secret or use a ' +
151
171
  'custom receiver.');
@@ -154,12 +174,16 @@ class App {
154
174
  this.logger.debug('Initializing HTTPReceiver');
155
175
  // Create default HTTPReceiver
156
176
  this.receiver = new HTTPReceiver_1.default({
157
- signingSecret,
177
+ signingSecret: signingSecret || '',
158
178
  endpoints,
179
+ port,
180
+ customRoutes,
159
181
  processBeforeResponse,
182
+ signatureVerification,
160
183
  clientId,
161
184
  clientSecret,
162
185
  stateSecret,
186
+ redirectUri,
163
187
  installationStore,
164
188
  scopes,
165
189
  logger,
@@ -168,8 +192,9 @@ class App {
168
192
  });
169
193
  }
170
194
  let usingOauth = false;
171
- if (this.receiver.installer !== undefined &&
172
- this.receiver.installer.authorize !== undefined) {
195
+ const httpReceiver = this.receiver;
196
+ if (httpReceiver.installer !== undefined &&
197
+ httpReceiver.installer.authorize !== undefined) {
173
198
  // This supports using the built in HTTPReceiver, declaring your own HTTPReceiver
174
199
  // and theoretically, doing a fully custom (non express) receiver that implements OAuth
175
200
  usingOauth = true;
@@ -191,24 +216,25 @@ class App {
191
216
  throw new errors_1.AppInitializationError(`Both authorize options and oauth installer options provided. ${tokenUsage}`);
192
217
  }
193
218
  else if (authorize === undefined && usingOauth) {
194
- this.authorize = this.receiver.installer.authorize;
219
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
220
+ this.authorize = httpReceiver.installer.authorize;
195
221
  }
196
222
  else if (authorize !== undefined && !usingOauth) {
197
223
  this.authorize = authorize;
198
224
  }
199
225
  else {
200
226
  this.logger.error('Never should have reached this point, please report to the team');
201
- helpers_1.assertNever();
227
+ (0, helpers_1.assertNever)();
202
228
  }
203
229
  // Conditionally use a global middleware that ignores events (including messages) that are sent from this app
204
230
  if (ignoreSelf) {
205
- this.use(builtin_1.ignoreSelf());
231
+ this.use((0, builtin_1.ignoreSelf)());
206
232
  }
207
233
  // Use conversation state global middleware
208
234
  if (convoStore !== false) {
209
235
  // Use the memory store by default, or another store if provided
210
236
  const store = convoStore === undefined ? new conversation_store_1.MemoryStore() : convoStore;
211
- this.use(conversation_store_1.conversationContext(store));
237
+ this.use((0, conversation_store_1.conversationContext)(store));
212
238
  }
213
239
  // Should be last to avoid exposing partially initialized app
214
240
  this.receiver.init(this);
@@ -243,6 +269,7 @@ class App {
243
269
  // TODO: HTTPReceiver['start'] should be the actual receiver's return type
244
270
  return this.receiver.start(...args);
245
271
  }
272
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
246
273
  stop(...args) {
247
274
  return this.receiver.stop(...args);
248
275
  }
@@ -263,27 +290,27 @@ class App {
263
290
  }
264
291
  this.listeners.push([
265
292
  builtin_1.onlyEvents,
266
- builtin_1.matchEventType(eventNameOrPattern),
293
+ (0, builtin_1.matchEventType)(eventNameOrPattern),
267
294
  ...listeners,
268
295
  ]);
269
296
  }
270
297
  message(...patternsOrMiddleware) {
271
298
  const messageMiddleware = patternsOrMiddleware.map((patternOrMiddleware) => {
272
299
  if (typeof patternOrMiddleware === 'string' || util_1.default.types.isRegExp(patternOrMiddleware)) {
273
- return builtin_1.matchMessage(patternOrMiddleware);
300
+ return (0, builtin_1.matchMessage)(patternOrMiddleware);
274
301
  }
275
302
  return patternOrMiddleware;
276
303
  });
277
304
  this.listeners.push([
278
305
  builtin_1.onlyEvents,
279
- builtin_1.matchEventType('message'),
306
+ (0, builtin_1.matchEventType)('message'),
280
307
  ...messageMiddleware,
281
308
  ]);
282
309
  }
283
310
  shortcut(callbackIdOrConstraints, ...listeners) {
284
- const constraints = typeof callbackIdOrConstraints === 'string' || util_1.default.types.isRegExp(callbackIdOrConstraints)
285
- ? { callback_id: callbackIdOrConstraints }
286
- : callbackIdOrConstraints;
311
+ const constraints = typeof callbackIdOrConstraints === 'string' || util_1.default.types.isRegExp(callbackIdOrConstraints) ?
312
+ { callback_id: callbackIdOrConstraints } :
313
+ callbackIdOrConstraints;
287
314
  // Fail early if the constraints contain invalid keys
288
315
  const unknownConstraintKeys = Object.keys(constraints).filter((k) => k !== 'callback_id' && k !== 'type');
289
316
  if (unknownConstraintKeys.length > 0) {
@@ -292,41 +319,37 @@ class App {
292
319
  }
293
320
  this.listeners.push([
294
321
  builtin_1.onlyShortcuts,
295
- builtin_1.matchConstraints(constraints),
322
+ (0, builtin_1.matchConstraints)(constraints),
296
323
  ...listeners,
297
324
  ]);
298
325
  }
299
326
  action(actionIdOrConstraints, ...listeners) {
300
327
  // Normalize Constraints
301
- const constraints = typeof actionIdOrConstraints === 'string' || util_1.default.types.isRegExp(actionIdOrConstraints)
302
- ? { action_id: actionIdOrConstraints }
303
- : actionIdOrConstraints;
328
+ const constraints = typeof actionIdOrConstraints === 'string' || util_1.default.types.isRegExp(actionIdOrConstraints) ?
329
+ { action_id: actionIdOrConstraints } :
330
+ actionIdOrConstraints;
304
331
  // Fail early if the constraints contain invalid keys
305
332
  const unknownConstraintKeys = Object.keys(constraints).filter((k) => k !== 'action_id' && k !== 'block_id' && k !== 'callback_id' && k !== 'type');
306
333
  if (unknownConstraintKeys.length > 0) {
307
334
  this.logger.error(`Action listener cannot be attached using unknown constraint keys: ${unknownConstraintKeys.join(', ')}`);
308
335
  return;
309
336
  }
310
- this.listeners.push([builtin_1.onlyActions, builtin_1.matchConstraints(constraints), ...listeners]);
337
+ this.listeners.push([builtin_1.onlyActions, (0, builtin_1.matchConstraints)(constraints), ...listeners]);
311
338
  }
312
339
  command(commandName, ...listeners) {
313
- this.listeners.push([builtin_1.onlyCommands, builtin_1.matchCommandName(commandName), ...listeners]);
314
- }
315
- // matches a Slack function callback specifically
316
- function(callbackID, ...listeners) {
317
- this.listeners.push([builtin_1.matchFunctionCallback(callbackID), ...listeners]);
340
+ this.listeners.push([builtin_1.onlyCommands, (0, builtin_1.matchCommandName)(commandName), ...listeners]);
318
341
  }
319
342
  // TODO: reflect the type in constraits to Source
320
343
  options(actionIdOrConstraints, ...listeners) {
321
- const constraints = typeof actionIdOrConstraints === 'string' || util_1.default.types.isRegExp(actionIdOrConstraints)
322
- ? { action_id: actionIdOrConstraints }
323
- : actionIdOrConstraints;
324
- this.listeners.push([builtin_1.onlyOptions, builtin_1.matchConstraints(constraints), ...listeners]);
344
+ const constraints = typeof actionIdOrConstraints === 'string' || util_1.default.types.isRegExp(actionIdOrConstraints) ?
345
+ { action_id: actionIdOrConstraints } :
346
+ actionIdOrConstraints;
347
+ this.listeners.push([builtin_1.onlyOptions, (0, builtin_1.matchConstraints)(constraints), ...listeners]);
325
348
  }
326
349
  view(callbackIdOrConstraints, ...listeners) {
327
- const constraints = typeof callbackIdOrConstraints === 'string' || util_1.default.types.isRegExp(callbackIdOrConstraints)
328
- ? { callback_id: callbackIdOrConstraints, type: 'view_submission' }
329
- : callbackIdOrConstraints;
350
+ const constraints = typeof callbackIdOrConstraints === 'string' || util_1.default.types.isRegExp(callbackIdOrConstraints) ?
351
+ { callback_id: callbackIdOrConstraints, type: 'view_submission' } :
352
+ callbackIdOrConstraints;
330
353
  // Fail early if the constraints contain invalid keys
331
354
  const unknownConstraintKeys = Object.keys(constraints).filter((k) => k !== 'callback_id' && k !== 'type');
332
355
  if (unknownConstraintKeys.length > 0) {
@@ -339,12 +362,13 @@ class App {
339
362
  }
340
363
  this.listeners.push([
341
364
  builtin_1.onlyViewActions,
342
- builtin_1.matchConstraints(constraints),
365
+ (0, builtin_1.matchConstraints)(constraints),
343
366
  ...listeners,
344
367
  ]);
345
368
  }
346
369
  error(errorHandler) {
347
370
  this.errorHandler = errorHandler;
371
+ this.hasCustomErrorHandler = true;
348
372
  }
349
373
  /**
350
374
  * Handles events from the receiver
@@ -360,7 +384,7 @@ class App {
360
384
  // or even all of the args, as properties of the error. This would give error handling code some ability to deal
361
385
  // with "finally" type error situations.
362
386
  // Introspect the body to determine what type of incoming event is being handled, and any channel context
363
- const { type, conversationId } = helpers_1.getTypeAndConversation(body);
387
+ const { type, conversationId } = (0, helpers_1.getTypeAndConversation)(body);
364
388
  // If the type could not be determined, warn and exit
365
389
  if (type === undefined) {
366
390
  this.logger.warn('Could not determine the type of an incoming event. No listeners will be called.');
@@ -381,9 +405,18 @@ class App {
381
405
  }
382
406
  }
383
407
  catch (error) {
408
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
409
+ const e = error;
384
410
  this.logger.warn('Authorization of incoming event did not succeed. No listeners will be called.');
385
- error.code = 'slack_bolt_authorization_error';
386
- return this.handleError(error);
411
+ e.code = errors_1.ErrorCode.AuthorizationError;
412
+ // disabling due to https://github.com/typescript-eslint/typescript-eslint/issues/1277
413
+ // eslint-disable-next-line consistent-return
414
+ return this.handleError({
415
+ error: e,
416
+ logger: this.logger,
417
+ body: bodyArg,
418
+ context: {},
419
+ });
387
420
  }
388
421
  // Try to set teamId from AuthorizeResult before using one from source
389
422
  if (authorizeResult.teamId === undefined && source.teamId !== undefined) {
@@ -393,32 +426,60 @@ class App {
393
426
  if (authorizeResult.enterpriseId === undefined && source.enterpriseId !== undefined) {
394
427
  authorizeResult.enterpriseId = source.enterpriseId;
395
428
  }
396
- const context = { ...authorizeResult };
429
+ if (typeof event.customProperties !== 'undefined') {
430
+ const customProps = event.customProperties;
431
+ const builtinKeyDetected = middleware_1.contextBuiltinKeys.find((key) => key in customProps);
432
+ if (typeof builtinKeyDetected !== 'undefined') {
433
+ throw new errors_1.InvalidCustomPropertyError('customProperties cannot have the same names with the built-in ones');
434
+ }
435
+ }
436
+ const context = {
437
+ ...authorizeResult,
438
+ ...event.customProperties,
439
+ retryNum: event.retryNum,
440
+ retryReason: event.retryReason,
441
+ };
397
442
  // Factory for say() utility
398
443
  const createSay = (channelId) => {
399
444
  const token = selectToken(context);
400
445
  return (message) => {
401
- const postMessageArguments = typeof message === 'string'
402
- ? { token, text: message, channel: channelId }
403
- : { ...message, token, channel: channelId };
446
+ const postMessageArguments = typeof message === 'string' ?
447
+ { token, text: message, channel: channelId } :
448
+ { ...message, token, channel: channelId };
404
449
  return this.client.chat.postMessage(postMessageArguments);
405
450
  };
406
451
  };
407
- // Set body and payload (this value will eventually conform to AnyMiddlewareArgs)
452
+ // Set body and payload
453
+ // TODO: this value should eventually conform to AnyMiddlewareArgs
454
+ let payload;
455
+ switch (type) {
456
+ case helpers_1.IncomingEventType.Event:
457
+ payload = bodyArg.event;
458
+ break;
459
+ case helpers_1.IncomingEventType.ViewAction:
460
+ payload = bodyArg.view;
461
+ break;
462
+ case helpers_1.IncomingEventType.Shortcut:
463
+ payload = bodyArg;
464
+ break;
465
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
466
+ // @ts-ignore: Fallthrough case in switch
467
+ case helpers_1.IncomingEventType.Action:
468
+ if (isBlockActionOrInteractiveMessageBody(bodyArg)) {
469
+ const { actions } = bodyArg;
470
+ [payload] = actions;
471
+ break;
472
+ }
473
+ // If above conditional does not hit, fall through to fallback payload in default block below
474
+ default:
475
+ payload = bodyArg;
476
+ break;
477
+ }
408
478
  // NOTE: the following doesn't work because... distributive?
409
479
  // const listenerArgs: Partial<AnyMiddlewareArgs> = {
410
480
  const listenerArgs = {
411
481
  body: bodyArg,
412
- payload: type === helpers_1.IncomingEventType.Event
413
- ? bodyArg.event
414
- : type === helpers_1.IncomingEventType.ViewAction
415
- ? bodyArg.view
416
- : type === helpers_1.IncomingEventType.Shortcut
417
- ? bodyArg
418
- : type === helpers_1.IncomingEventType.Action &&
419
- isBlockActionOrInteractiveMessageBody(bodyArg)
420
- ? bodyArg.actions[0]
421
- : bodyArg,
482
+ payload,
422
483
  };
423
484
  // Set aliases
424
485
  if (type === helpers_1.IncomingEventType.Event) {
@@ -497,7 +558,7 @@ class App {
497
558
  }
498
559
  // Dispatch event through the global middleware chain
499
560
  try {
500
- await process_1.processMiddleware(this.middleware, listenerArgs, context, client, this.logger, async () => {
561
+ await (0, process_1.default)(this.middleware, listenerArgs, context, client, this.logger, async () => {
501
562
  // Dispatch the event through the listener middleware chains and aggregate their results
502
563
  // TODO: change the name of this.middleware and this.listeners to help this make more sense
503
564
  const listenerResults = this.listeners.map(async (origListenerMiddleware) => {
@@ -505,11 +566,19 @@ class App {
505
566
  const listenerMiddleware = [...origListenerMiddleware];
506
567
  // Don't process the last item in the listenerMiddleware array - it shouldn't get a next fn
507
568
  const listener = listenerMiddleware.pop();
508
- if (listener !== undefined) {
509
- return process_1.processMiddleware(listenerMiddleware, listenerArgs, context, client, this.logger, async () =>
510
- // When the listener middleware chain is done processing, call the listener without a next fn
511
- listener({ ...listenerArgs, context, client, logger: this.logger }));
569
+ if (listener === undefined) {
570
+ return undefined;
512
571
  }
572
+ return (0, process_1.default)(listenerMiddleware, listenerArgs, context, client, this.logger,
573
+ // When all of the listener middleware are done processing,
574
+ // `listener` here will be called without a `next` execution
575
+ async () => listener({
576
+ ...listenerArgs,
577
+ context,
578
+ client,
579
+ logger: this.logger,
580
+ // `next` is already set in the outer processMiddleware
581
+ }));
513
582
  });
514
583
  const settledListenerResults = await allSettled(listenerResults);
515
584
  const rejectedListenerResults = settledListenerResults.filter((lr) => lr.status === 'rejected');
@@ -522,21 +591,29 @@ class App {
522
591
  });
523
592
  }
524
593
  catch (error) {
525
- return this.handleError(error);
594
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
595
+ const e = error;
596
+ // disabling due to https://github.com/typescript-eslint/typescript-eslint/issues/1277
597
+ // eslint-disable-next-line consistent-return
598
+ return this.handleError({
599
+ context,
600
+ error: e,
601
+ logger: this.logger,
602
+ body: bodyArg,
603
+ });
526
604
  }
527
605
  }
528
606
  /**
529
607
  * Global error handler. The final destination for all errors (hopefully).
530
608
  */
531
- handleError(error) {
532
- return this.errorHandler(errors_1.asCodedError(error));
609
+ handleError(args) {
610
+ const { error, ...rest } = args;
611
+ return this.extendedErrorHandler && this.hasCustomErrorHandler ?
612
+ this.errorHandler({ error: (0, errors_1.asCodedError)(error), ...rest }) :
613
+ this.errorHandler((0, errors_1.asCodedError)(error));
533
614
  }
534
615
  }
535
616
  exports.default = App;
536
- // ----------------------------
537
- // For the constructor
538
- const tokenUsage = 'Apps used in one workspace should be initialized with a token. Apps used in many workspaces ' +
539
- 'should be initialized with oauth installer or authorize.';
540
617
  function defaultErrorHandler(logger) {
541
618
  return (error) => {
542
619
  logger.error(error);
@@ -547,14 +624,12 @@ function defaultErrorHandler(logger) {
547
624
  // singleAuthorization
548
625
  function runAuthTestForBotToken(client, authorization) {
549
626
  // TODO: warn when something needed isn't found
550
- return authorization.botUserId !== undefined && authorization.botId !== undefined
551
- ? Promise.resolve({ botUserId: authorization.botUserId, botId: authorization.botId })
552
- : client.auth.test({ token: authorization.botToken }).then((result) => {
553
- return {
554
- botUserId: result.user_id,
555
- botId: result.bot_id,
556
- };
557
- });
627
+ return authorization.botUserId !== undefined && authorization.botId !== undefined ?
628
+ Promise.resolve({ botUserId: authorization.botUserId, botId: authorization.botId }) :
629
+ client.auth.test({ token: authorization.botToken }).then((result) => ({
630
+ botUserId: result.user_id,
631
+ botId: result.bot_id,
632
+ }));
558
633
  }
559
634
  async function buildAuthorizeResult(isEnterpriseInstall, authTestResult, authorization) {
560
635
  return { isEnterpriseInstall, botToken: authorization.botToken, ...(await authTestResult) };
@@ -566,9 +641,7 @@ function singleAuthorization(client, authorization, tokenVerificationEnabled) {
566
641
  if (tokenVerificationEnabled) {
567
642
  // call auth.test immediately
568
643
  cachedAuthTestResult = runAuthTestForBotToken(client, authorization);
569
- return async ({ isEnterpriseInstall }) => {
570
- return buildAuthorizeResult(isEnterpriseInstall, cachedAuthTestResult, authorization);
571
- };
644
+ return async ({ isEnterpriseInstall }) => buildAuthorizeResult(isEnterpriseInstall, cachedAuthTestResult, authorization);
572
645
  }
573
646
  return async ({ isEnterpriseInstall }) => {
574
647
  // hold off calling auth.test API until the first access to authorize function
@@ -610,7 +683,7 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
610
683
  // This is the only place where this function might return undefined
611
684
  return bodyAsActionOrOptionsOrViewActionOrShortcut.user.team_id;
612
685
  }
613
- return helpers_1.assertNever(type);
686
+ return (0, helpers_1.assertNever)(type);
614
687
  })();
615
688
  const enterpriseId = (() => {
616
689
  if (type === helpers_1.IncomingEventType.Event) {
@@ -642,7 +715,7 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
642
715
  }
643
716
  return undefined;
644
717
  }
645
- return helpers_1.assertNever(type);
718
+ return (0, helpers_1.assertNever)(type);
646
719
  })();
647
720
  const userId = (() => {
648
721
  if (type === helpers_1.IncomingEventType.Event) {
@@ -675,7 +748,7 @@ function buildSource(type, channelId, body, isEnterpriseInstall) {
675
748
  if (type === helpers_1.IncomingEventType.Command) {
676
749
  return body.user_id;
677
750
  }
678
- return helpers_1.assertNever(type);
751
+ return (0, helpers_1.assertNever)(type);
679
752
  })();
680
753
  return {
681
754
  userId,
@@ -710,17 +783,14 @@ function isBlockActionOrInteractiveMessageBody(body) {
710
783
  function selectToken(context) {
711
784
  return context.botToken !== undefined ? context.botToken : context.userToken;
712
785
  }
713
- function buildRespondFn(axiosInstance, response_url) {
786
+ function buildRespondFn(axiosInstance, responseUrl) {
714
787
  return async (message) => {
715
788
  const normalizedArgs = typeof message === 'string' ? { text: message } : message;
716
- return axiosInstance.post(response_url, normalizedArgs);
789
+ return axiosInstance.post(responseUrl, normalizedArgs);
717
790
  };
718
791
  }
719
792
  // ----------------------------
720
- // For listener registration methods
721
- const validViewTypes = ['view_closed', 'view_submission'];
722
- // ----------------------------
723
793
  // Instrumentation
724
794
  // Don't change the position of the following code
725
- web_api_1.addAppMetadata({ name: packageJson.name, version: packageJson.version });
795
+ (0, web_api_1.addAppMetadata)({ name: packageJson.name, version: packageJson.version });
726
796
  //# sourceMappingURL=App.js.map
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}