@slack/bolt 3.10.0 → 3.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/App.js +24 -7
  3. package/dist/App.js.map +1 -1
  4. package/dist/errors.d.ts +1 -1
  5. package/dist/errors.d.ts.map +1 -1
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +12 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/middleware/builtin.d.ts.map +1 -1
  11. package/dist/middleware/builtin.js +18 -6
  12. package/dist/middleware/builtin.js.map +1 -1
  13. package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
  14. package/dist/receivers/AwsLambdaReceiver.js +4 -1
  15. package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
  16. package/dist/receivers/BufferedIncomingMessage.d.ts +6 -0
  17. package/dist/receivers/BufferedIncomingMessage.d.ts.map +1 -0
  18. package/dist/receivers/BufferedIncomingMessage.js +3 -0
  19. package/dist/receivers/BufferedIncomingMessage.js.map +1 -0
  20. package/dist/receivers/ExpressReceiver.d.ts +20 -6
  21. package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
  22. package/dist/receivers/ExpressReceiver.js +68 -84
  23. package/dist/receivers/ExpressReceiver.js.map +1 -1
  24. package/dist/receivers/HTTPModuleFunctions.d.ts +47 -0
  25. package/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -0
  26. package/dist/receivers/HTTPModuleFunctions.js +197 -0
  27. package/dist/receivers/HTTPModuleFunctions.js.map +1 -0
  28. package/dist/receivers/HTTPReceiver.d.ts +14 -32
  29. package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
  30. package/dist/receivers/HTTPReceiver.js +44 -179
  31. package/dist/receivers/HTTPReceiver.js.map +1 -1
  32. package/dist/receivers/HTTPResponseAck.d.ts +30 -0
  33. package/dist/receivers/HTTPResponseAck.d.ts.map +1 -0
  34. package/dist/receivers/HTTPResponseAck.js +64 -0
  35. package/dist/receivers/HTTPResponseAck.js.map +1 -0
  36. package/dist/receivers/SocketModeFunctions.d.ts +12 -0
  37. package/dist/receivers/SocketModeFunctions.d.ts.map +1 -0
  38. package/dist/receivers/SocketModeFunctions.js +28 -0
  39. package/dist/receivers/SocketModeFunctions.js.map +1 -0
  40. package/dist/receivers/SocketModeReceiver.d.ts +10 -3
  41. package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
  42. package/dist/receivers/SocketModeReceiver.js +29 -37
  43. package/dist/receivers/SocketModeReceiver.js.map +1 -1
  44. package/dist/receivers/custom-routes.d.ts +1 -1
  45. package/dist/receivers/custom-routes.d.ts.map +1 -1
  46. package/dist/receivers/custom-routes.js +3 -3
  47. package/dist/receivers/custom-routes.js.map +1 -1
  48. package/dist/receivers/http-utils.d.ts.map +1 -1
  49. package/dist/receivers/http-utils.js +9 -25
  50. package/dist/receivers/http-utils.js.map +1 -1
  51. package/dist/receivers/render-html-for-install-path.d.ts.map +1 -1
  52. package/dist/receivers/render-html-for-install-path.js +7 -0
  53. package/dist/receivers/render-html-for-install-path.js.map +1 -1
  54. package/dist/receivers/verify-request.d.ts +25 -33
  55. package/dist/receivers/verify-request.d.ts.map +1 -1
  56. package/dist/receivers/verify-request.js +41 -61
  57. package/dist/receivers/verify-request.js.map +1 -1
  58. package/dist/types/events/base-events.d.ts +296 -10
  59. package/dist/types/events/base-events.d.ts.map +1 -1
  60. package/dist/types/events/base-events.js.map +1 -1
  61. package/dist/types/events/index.d.ts +2 -1
  62. package/dist/types/events/index.d.ts.map +1 -1
  63. package/dist/types/view/index.d.ts +12 -6
  64. package/dist/types/view/index.d.ts.map +1 -1
  65. package/package.json +9 -6
  66. package/CHANGELOG.md +0 -5
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTTPResponseAck = void 0;
4
+ const errors_1 = require("../errors");
5
+ const HTTPModuleFunctions_1 = require("./HTTPModuleFunctions");
6
+ class HTTPResponseAck {
7
+ constructor(args) {
8
+ var _a, _b;
9
+ this.logger = args.logger;
10
+ this.isAcknowledged = false;
11
+ this.processBeforeResponse = args.processBeforeResponse;
12
+ this.unhandledRequestHandler = (_a = args.unhandledRequestHandler) !== null && _a !== void 0 ? _a : HTTPModuleFunctions_1.HTTPModuleFunctions.defaultUnhandledRequestHandler;
13
+ this.unhandledRequestTimeoutMillis = (_b = args.unhandledRequestTimeoutMillis) !== null && _b !== void 0 ? _b : 3001;
14
+ this.httpRequest = args.httpRequest;
15
+ this.httpResponse = args.httpResponse;
16
+ this.storedResponse = undefined;
17
+ this.noAckTimeoutId = undefined;
18
+ this.init();
19
+ }
20
+ init() {
21
+ this.noAckTimeoutId = setTimeout(() => {
22
+ if (!this.isAcknowledged) {
23
+ this.unhandledRequestHandler({
24
+ logger: this.logger,
25
+ request: this.httpRequest,
26
+ response: this.httpResponse,
27
+ });
28
+ }
29
+ }, this.unhandledRequestTimeoutMillis);
30
+ return this;
31
+ }
32
+ bind() {
33
+ return async (responseBody) => {
34
+ this.logger.debug(`ack() call begins (body: ${responseBody})`);
35
+ if (this.isAcknowledged) {
36
+ throw new errors_1.ReceiverMultipleAckError();
37
+ }
38
+ this.ack();
39
+ if (this.processBeforeResponse) {
40
+ // In the case where processBeforeResponse: true is enabled,
41
+ // we don't send the HTTP response immediately. We hold off until the listener execution is completed.
42
+ if (!responseBody) {
43
+ this.storedResponse = '';
44
+ }
45
+ else {
46
+ this.storedResponse = responseBody;
47
+ }
48
+ this.logger.debug(`ack() response stored (body: ${responseBody})`);
49
+ }
50
+ else {
51
+ HTTPModuleFunctions_1.HTTPModuleFunctions.buildContentResponse(this.httpResponse, responseBody);
52
+ this.logger.debug(`ack() response sent (body: ${responseBody})`);
53
+ }
54
+ };
55
+ }
56
+ ack() {
57
+ this.isAcknowledged = true;
58
+ if (this.noAckTimeoutId) {
59
+ clearTimeout(this.noAckTimeoutId);
60
+ }
61
+ }
62
+ }
63
+ exports.HTTPResponseAck = HTTPResponseAck;
64
+ //# sourceMappingURL=HTTPResponseAck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTTPResponseAck.js","sourceRoot":"","sources":["../../src/receivers/HTTPResponseAck.ts"],"names":[],"mappings":";;;AAGA,sCAAqD;AACrD,+DAA6G;AAc7G,MAAa,eAAe;IAoB1B,YAAmB,IAAa;;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,CAAC,uBAAuB,GAAG,MAAA,IAAI,CAAC,uBAAuB,mCAAI,yCAAQ,CAAC,8BAA8B,CAAC;QACvG,IAAI,CAAC,6BAA6B,GAAG,MAAA,IAAI,CAAC,6BAA6B,mCAAI,IAAI,CAAC;QAChF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,IAAI,CAAC,uBAAuB,CAAC;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,QAAQ,EAAE,IAAI,CAAC,YAAY;iBAC5B,CAAC,CAAC;aACJ;QACH,CAAC,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,IAAI;QACT,OAAO,KAAK,EAAE,YAAY,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,YAAY,GAAG,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,MAAM,IAAI,iCAAwB,EAAE,CAAC;aACtC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,4DAA4D;gBAC5D,sGAAsG;gBACtG,IAAI,CAAC,YAAY,EAAE;oBACjB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;iBAC1B;qBAAM;oBACL,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;iBACpC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,YAAY,GAAG,CAAC,CAAC;aACpE;iBAAM;gBACL,yCAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,YAAY,GAAG,CAAC,CAAC;aAClE;QACH,CAAC,CAAC;IACJ,CAAC;IAEM,GAAG;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACnC;IACH,CAAC;CACF;AA3ED,0CA2EC"}
@@ -0,0 +1,12 @@
1
+ import type { Logger } from '@slack/logger';
2
+ import { CodedError } from '../errors';
3
+ import { ReceiverEvent } from '../types';
4
+ export declare class SocketModeFunctions {
5
+ static defaultProcessEventErrorHandler(args: SocketModeReceiverProcessEventErrorHandlerArgs): Promise<boolean>;
6
+ }
7
+ export interface SocketModeReceiverProcessEventErrorHandlerArgs {
8
+ error: Error | CodedError;
9
+ logger: Logger;
10
+ event: ReceiverEvent;
11
+ }
12
+ //# sourceMappingURL=SocketModeFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocketModeFunctions.d.ts","sourceRoot":"","sources":["../../src/receivers/SocketModeFunctions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAa,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,mBAAmB;WAOV,+BAA+B,CACjD,IAAI,EAAE,8CAA8C,GACnD,OAAO,CAAC,OAAO,CAAC;CAepB;AAID,MAAM,WAAW,8CAA8C;IAC7D,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;CACtB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SocketModeFunctions = void 0;
4
+ const errors_1 = require("../errors");
5
+ class SocketModeFunctions {
6
+ // ------------------------------------------
7
+ // Error handlers for event processing
8
+ // ------------------------------------------
9
+ // The default processEventErrorHandler implementation:
10
+ // Developers can customize this behavior by passing processEventErrorHandler to the constructor
11
+ static async defaultProcessEventErrorHandler(args) {
12
+ const { error, logger, event } = args;
13
+ // TODO: more details like envelop_id, payload type etc. here
14
+ // To make them available, we need to enhance underlying SocketModeClient
15
+ // to return more properties to 'slack_event' listeners
16
+ logger.error(`An unhandled error occurred while Bolt processed (type: ${event.body.type}, error: ${error})`);
17
+ logger.debug(`Error details: ${error}, retry num: ${event.retryNum}, retry reason: ${event.retryReason}`);
18
+ const errorCode = error.code;
19
+ if (errorCode === errors_1.ErrorCode.AuthorizationError) {
20
+ // The `authorize` function threw an exception, which means there is no valid installation data.
21
+ // In this case, we can tell the Slack server-side to stop retries.
22
+ return true;
23
+ }
24
+ return false;
25
+ }
26
+ }
27
+ exports.SocketModeFunctions = SocketModeFunctions;
28
+ //# sourceMappingURL=SocketModeFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocketModeFunctions.js","sourceRoot":"","sources":["../../src/receivers/SocketModeFunctions.ts"],"names":[],"mappings":";;;AAEA,sCAAkD;AAGlD,MAAa,mBAAmB;IAC9B,6CAA6C;IAC7C,sCAAsC;IACtC,6CAA6C;IAE7C,uDAAuD;IACvD,gGAAgG;IACzF,MAAM,CAAC,KAAK,CAAC,+BAA+B,CACjD,IAAoD;QAEpD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACtC,6DAA6D;QAC7D,yEAAyE;QACzE,uDAAuD;QACvD,MAAM,CAAC,KAAK,CAAC,2DAA2D,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,KAAK,GAAG,CAAC,CAAC;QAC7G,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,gBAAgB,KAAK,CAAC,QAAQ,mBAAmB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,MAAM,SAAS,GAAI,KAAoB,CAAC,IAAI,CAAC;QAC7C,IAAI,SAAS,KAAK,kBAAS,CAAC,kBAAkB,EAAE;YAC9C,gGAAgG;YAChG,mEAAmE;YACnE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAxBD,kDAwBC"}
@@ -2,11 +2,12 @@
2
2
  import { SocketModeClient } from '@slack/socket-mode';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { Logger, LogLevel } from '@slack/logger';
5
- import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions } from '@slack/oauth';
5
+ import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions, InstallPathOptions } from '@slack/oauth';
6
6
  import { AppsConnectionsOpenResponse } from '@slack/web-api';
7
7
  import App from '../App';
8
8
  import { Receiver } from '../types';
9
9
  import { StringIndexed } from '../types/helpers';
10
+ import { SocketModeReceiverProcessEventErrorHandlerArgs } from './SocketModeFunctions';
10
11
  export interface SocketModeReceiverOptions {
11
12
  logger?: Logger;
12
13
  logLevel?: LogLevel;
@@ -20,6 +21,7 @@ export interface SocketModeReceiverOptions {
20
21
  appToken: string;
21
22
  customRoutes?: CustomRoute[];
22
23
  customPropertiesExtractor?: (args: any) => StringIndexed;
24
+ processEventErrorHandler?: (args: SocketModeReceiverProcessEventErrorHandlerArgs) => Promise<boolean>;
23
25
  }
24
26
  export interface CustomRoute {
25
27
  path: string;
@@ -29,12 +31,16 @@ export interface CustomRoute {
29
31
  interface InstallerOptions {
30
32
  stateStore?: InstallProviderOptions['stateStore'];
31
33
  stateVerification?: InstallProviderOptions['stateVerification'];
34
+ legacyStateVerification?: InstallProviderOptions['legacyStateVerification'];
35
+ stateCookieName?: InstallProviderOptions['stateCookieName'];
36
+ stateCookieExpirationSeconds?: InstallProviderOptions['stateCookieExpirationSeconds'];
32
37
  authVersion?: InstallProviderOptions['authVersion'];
33
38
  metadata?: InstallURLOptions['metadata'];
34
39
  installPath?: string;
35
40
  directInstall?: boolean;
36
- renderHtmlForInstallPath?: (url: string) => string;
41
+ renderHtmlForInstallPath?: InstallProviderOptions['renderHtmlForInstallPath'];
37
42
  redirectUriPath?: string;
43
+ installPathOptions?: InstallPathOptions;
38
44
  callbackOptions?: CallbackOptions;
39
45
  userScopes?: InstallURLOptions['userScopes'];
40
46
  clientOptions?: InstallProviderOptions['clientOptions'];
@@ -52,7 +58,8 @@ export default class SocketModeReceiver implements Receiver {
52
58
  private httpServer?;
53
59
  private httpServerPort?;
54
60
  private routes;
55
- constructor({ appToken, logger, logLevel, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, customRoutes, customPropertiesExtractor, }: SocketModeReceiverOptions);
61
+ private processEventErrorHandler;
62
+ constructor({ appToken, logger, logLevel, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, customRoutes, customPropertiesExtractor, processEventErrorHandler, }: SocketModeReceiverOptions);
56
63
  init(app: App): void;
57
64
  start(): Promise<AppsConnectionsOpenResponse>;
58
65
  stop(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SocketModeReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SocketModeReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
4
  const url_1 = require("url");
@@ -9,15 +6,14 @@ const socket_mode_1 = require("@slack/socket-mode");
9
6
  const http_1 = require("http");
10
7
  const logger_1 = require("@slack/logger");
11
8
  const oauth_1 = require("@slack/oauth");
12
- const render_html_for_install_path_1 = __importDefault(require("./render-html-for-install-path"));
13
9
  const custom_routes_1 = require("./custom-routes");
14
10
  const verify_redirect_opts_1 = require("./verify-redirect-opts");
11
+ const SocketModeFunctions_1 = require("./SocketModeFunctions");
15
12
  /**
16
13
  * Receives Events, Slash Commands, and Actions of a web socket connection
17
14
  */
18
15
  class SocketModeReceiver {
19
- constructor({ appToken, logger = undefined, logLevel = logger_1.LogLevel.INFO, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, customRoutes = [], customPropertiesExtractor = (_args) => ({}), }) {
20
- var _a;
16
+ constructor({ appToken, logger = undefined, logLevel = logger_1.LogLevel.INFO, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, customRoutes = [], customPropertiesExtractor = (_args) => ({}), processEventErrorHandler = SocketModeFunctions_1.SocketModeFunctions.defaultProcessEventErrorHandler, }) {
21
17
  this.installer = undefined;
22
18
  this.client = new socket_mode_1.SocketModeClient({
23
19
  appToken,
@@ -30,7 +26,8 @@ class SocketModeReceiver {
30
26
  defaultLogger.setLevel(logLevel);
31
27
  return defaultLogger;
32
28
  })();
33
- this.routes = (0, custom_routes_1.prepareRoutes)(customRoutes);
29
+ this.routes = (0, custom_routes_1.buildReceiverRoutes)(customRoutes);
30
+ this.processEventErrorHandler = processEventErrorHandler;
34
31
  // Verify redirect options if supplied, throws coded error if invalid
35
32
  (0, verify_redirect_opts_1.verifyRedirectOpts)({ redirectUri, redirectUriPath: installerOptions.redirectUriPath });
36
33
  if (clientId !== undefined &&
@@ -46,20 +43,21 @@ class SocketModeReceiver {
46
43
  installationStore,
47
44
  logLevel,
48
45
  logger,
46
+ directInstall: installerOptions.directInstall,
49
47
  stateStore: installerOptions.stateStore,
50
48
  stateVerification: installerOptions.stateVerification,
51
- authVersion: (_a = installerOptions.authVersion) !== null && _a !== void 0 ? _a : 'v2',
49
+ legacyStateVerification: installerOptions.legacyStateVerification,
50
+ stateCookieName: installerOptions.stateCookieName,
51
+ stateCookieExpirationSeconds: installerOptions.stateCookieExpirationSeconds,
52
+ renderHtmlForInstallPath: installerOptions.renderHtmlForInstallPath,
53
+ authVersion: installerOptions.authVersion,
52
54
  clientOptions: installerOptions.clientOptions,
53
55
  authorizationUrl: installerOptions.authorizationUrl,
54
56
  });
55
57
  }
56
58
  // Add OAuth and/or custom routes to receiver
57
59
  if (this.installer !== undefined || customRoutes.length) {
58
- // use default or passed in redirect path
59
- const redirectUriPath = installerOptions.redirectUriPath === undefined ? '/slack/oauth_redirect' : installerOptions.redirectUriPath;
60
- // use default or passed in installPath
61
60
  const installPath = installerOptions.installPath === undefined ? '/slack/install' : installerOptions.installPath;
62
- const directInstallEnabled = installerOptions.directInstall !== undefined && installerOptions.directInstall;
63
61
  this.httpServerPort = installerOptions.port === undefined ? 3000 : installerOptions.port;
64
62
  this.httpServer = (0, http_1.createServer)(async (req, res) => {
65
63
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -74,43 +72,24 @@ class SocketModeReceiver {
74
72
  redirectUri,
75
73
  };
76
74
  // Installation has been initiated
75
+ const redirectUriPath = installerOptions.redirectUriPath === undefined ? '/slack/oauth_redirect' : installerOptions.redirectUriPath;
77
76
  if (req.url && req.url.startsWith(redirectUriPath)) {
78
77
  const { stateVerification, callbackOptions } = installerOptions;
79
78
  if (stateVerification === false) {
80
79
  // if stateVerification is disabled make install options available to handler
81
80
  // since they won't be encoded in the state param of the generated url
82
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
83
81
  await this.installer.handleCallback(req, res, callbackOptions, installUrlOptions);
84
82
  }
85
83
  else {
86
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
87
84
  await this.installer.handleCallback(req, res, callbackOptions);
88
85
  }
89
86
  return;
90
87
  }
91
88
  // Visiting the installation endpoint
92
89
  if (req.url && req.url.startsWith(installPath)) {
93
- const { stateVerification, renderHtmlForInstallPath } = installerOptions;
94
- try {
95
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
96
- const url = await this.installer.generateInstallUrl(installUrlOptions, stateVerification);
97
- if (directInstallEnabled) {
98
- res.writeHead(302, { Location: url });
99
- res.end('');
100
- }
101
- else {
102
- res.writeHead(200, {});
103
- const renderHtml = renderHtmlForInstallPath !== undefined ?
104
- renderHtmlForInstallPath :
105
- render_html_for_install_path_1.default;
106
- res.end(renderHtml(url));
107
- return;
108
- }
109
- }
110
- catch (err) {
111
- const e = err;
112
- throw new Error(e);
113
- }
90
+ const { installPathOptions } = installerOptions;
91
+ await this.installer.handleInstallPath(req, res, installPathOptions, installUrlOptions);
92
+ return;
114
93
  }
115
94
  }
116
95
  // Handle request for custom routes
@@ -143,7 +122,19 @@ class SocketModeReceiver {
143
122
  retryReason: retry_reason,
144
123
  customProperties: customPropertiesExtractor(args),
145
124
  };
146
- await ((_a = this.app) === null || _a === void 0 ? void 0 : _a.processEvent(event));
125
+ try {
126
+ await ((_a = this.app) === null || _a === void 0 ? void 0 : _a.processEvent(event));
127
+ }
128
+ catch (error) {
129
+ const shouldBeAcked = await this.processEventErrorHandler({
130
+ error: error,
131
+ logger: this.logger,
132
+ event,
133
+ });
134
+ if (shouldBeAcked) {
135
+ await ack();
136
+ }
137
+ }
147
138
  });
148
139
  }
149
140
  init(app) {
@@ -161,7 +152,8 @@ class SocketModeReceiver {
161
152
  if (this.httpServer !== undefined) {
162
153
  // This HTTP server is only for the OAuth flow support
163
154
  this.httpServer.close((error) => {
164
- this.logger.error(`Failed to shutdown the HTTP server for OAuth flow: ${error}`);
155
+ if (error)
156
+ this.logger.error(`Failed to shutdown the HTTP server for OAuth flow: ${error}`);
165
157
  });
166
158
  }
167
159
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SocketModeReceiver.js","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,6BAA0B;AAC1B,oDAAsD;AACtD,+BAA6E;AAC7E,0CAAgE;AAChE,wCAA2G;AAI3G,kGAA6E;AAE7E,mDAAgE;AAChE,iEAA4D;AA0C5D;;GAEG;AACH,MAAqB,kBAAkB;IAgBrC,YAAmB,EACjB,QAAQ,EACR,MAAM,GAAG,SAAS,EAClB,QAAQ,GAAG,iBAAQ,CAAC,IAAI,EACxB,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,YAAY,GAAG,EAAE,EACjB,yBAAyB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GACjB;;QArBrB,cAAS,GAAgC,SAAS,CAAC;QAsBxD,IAAI,CAAC,MAAM,GAAG,IAAI,8BAAgB,CAAC;YACjC,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,aAAa,EAAE,gBAAgB,CAAC,aAAa;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,GAAG,EAAE;YAC5B,MAAM,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAC;YAC1C,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,MAAM,GAAG,IAAA,6BAAa,EAAC,YAAY,CAAC,CAAC;QAE1C,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;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,EAAE;YACvD,yCAAyC;YACzC,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,gBAAgB,CAAC,eAAe,CAAC;YAEpI,uCAAuC;YACvC,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACjH,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,aAAa,KAAK,SAAS,IAAI,gBAAgB,CAAC,aAAa,CAAC;YAC5G,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAEzF,IAAI,CAAC,UAAU,GAAG,IAAA,mBAAY,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAChD,oEAAoE;gBACpE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC,WAAW,EAAE,CAAC;gBAEzC,gCAAgC;gBAChC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,6BAA6B;oBAC7B,MAAM,iBAAiB,GAAG;wBACxB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;wBACnC,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE;wBACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU;wBACvC,WAAW;qBACZ,CAAC;oBACF,kCAAkC;oBAClC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;wBAClD,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC;wBAChE,IAAI,iBAAiB,KAAK,KAAK,EAAE;4BAC/B,6EAA6E;4BAC7E,sEAAsE;4BACtE,oEAAoE;4BACpE,MAAM,IAAI,CAAC,SAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;yBACpF;6BAAM;4BACL,oEAAoE;4BACpE,MAAM,IAAI,CAAC,SAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;yBACjE;wBACD,OAAO;qBACR;oBAED,qCAAqC;oBACrC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;wBAC9C,MAAM,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,GAAG,gBAAgB,CAAC;wBACzE,IAAI;4BACF,oEAAoE;4BACpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;4BAC3F,IAAI,oBAAoB,EAAE;gCACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gCACtC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;6BACb;iCAAM;gCACL,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gCACvB,MAAM,UAAU,GAAG,wBAAwB,KAAK,SAAS,CAAC,CAAC;oCACzD,wBAAwB,CAAC,CAAC;oCAC1B,sCAA+B,CAAC;gCAClC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gCACzB,OAAO;6BACR;yBACF;wBAAC,OAAO,GAAG,EAAE;4BACZ,MAAM,CAAC,GAAG,GAAU,CAAC;4BACrB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;yBACpB;qBACF;iBACF;gBAED,mCAAmC;gBACnC,IAAI,YAAY,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;oBAClC,mDAAmD;oBACnD,iEAAiE;oBACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,SAAG,CAAC,GAAG,CAAC,GAAa,EAAE,kBAAkB,CAAC,CAAC;oBAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;oBAE3E,IAAI,KAAK,EAAE;wBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBACpC,OAAO;qBACR;iBACF;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;gBAC7F,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAEhF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,cAAc,GAAG,WAAW,yBAAyB,CAAC,CAAC;aACzG;SACF;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;;YAC3C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;YACpD,MAAM,KAAK,GAAkB;gBAC3B,IAAI;gBACJ,GAAG;gBACH,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,YAAY;gBACzB,gBAAgB,EAAE,yBAAyB,CAAC,IAAI,CAAC;aAClD,CAAC;YACF,MAAM,CAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,YAAY,CAAC,KAAK,CAAC,CAAA,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,KAAK;QACV,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,sDAAsD;YACtD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7C;QACD,2BAA2B;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEM,IAAI;QACT,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,sDAAsD;YACtD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI;gBACF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;aACX;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtMD,qCAsMC"}
1
+ {"version":3,"file":"SocketModeReceiver.js","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,5 @@ export interface ReceiverRoutes {
10
10
  [method: string]: (req: IncomingMessage, res: ServerResponse) => void;
11
11
  };
12
12
  }
13
- export declare function prepareRoutes(customRoutes: CustomRoute[]): ReceiverRoutes;
13
+ export declare function buildReceiverRoutes(customRoutes: CustomRoute[]): ReceiverRoutes;
14
14
  //# sourceMappingURL=custom-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-routes.d.ts","sourceRoot":"","sources":["../../src/receivers/custom-routes.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;KACvE,CAAC;CACH;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,cAAc,CAazE"}
1
+ {"version":3,"file":"custom-routes.d.ts","sourceRoot":"","sources":["../../src/receivers/custom-routes.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;KACvE,CAAC;CACH;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,cAAc,CAa/E"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareRoutes = void 0;
3
+ exports.buildReceiverRoutes = void 0;
4
4
  const errors_1 = require("../errors");
5
- function prepareRoutes(customRoutes) {
5
+ function buildReceiverRoutes(customRoutes) {
6
6
  const routes = {};
7
7
  validateCustomRoutes(customRoutes);
8
8
  customRoutes.forEach((r) => {
@@ -13,7 +13,7 @@ function prepareRoutes(customRoutes) {
13
13
  });
14
14
  return routes;
15
15
  }
16
- exports.prepareRoutes = prepareRoutes;
16
+ exports.buildReceiverRoutes = buildReceiverRoutes;
17
17
  function validateCustomRoutes(customRoutes) {
18
18
  const requiredKeys = ['path', 'method', 'handler'];
19
19
  const missingKeys = [];
@@ -1 +1 @@
1
- {"version":3,"file":"custom-routes.js","sourceRoot":"","sources":["../../src/receivers/custom-routes.ts"],"names":[],"mappings":";;;AACA,sCAA2D;AAc3D,SAAgB,aAAa,CAAC,YAA2B;IACvD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEnC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7E,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAbD,sCAaC;AAED,SAAS,oBAAoB,CAAC,YAA2B;IACvD,MAAM,YAAY,GAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,WAAW,GAA0B,EAAE,CAAC;IAE9C,kCAAkC;IAClC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1D,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,QAAQ,GAAG,iEAAiE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,uCAA8B,CAAC,QAAQ,CAAC,CAAC;KACpD;AACH,CAAC"}
1
+ {"version":3,"file":"custom-routes.js","sourceRoot":"","sources":["../../src/receivers/custom-routes.ts"],"names":[],"mappings":";;;AACA,sCAA2D;AAc3D,SAAgB,mBAAmB,CAAC,YAA2B;IAC7D,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEnC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7E,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAbD,kDAaC;AAED,SAAS,oBAAoB,CAAC,YAA2B;IACvD,MAAM,YAAY,GAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,WAAW,GAA0B,EAAE,CAAC;IAE9C,kCAAkC;IAClC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1D,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,QAAQ,GAAG,iEAAiE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,uCAA8B,CAAC,QAAQ,CAAC,CAAC;KACpD;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/receivers/http-utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAWxE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAY3E"}
1
+ {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/receivers/http-utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAMvC,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGxE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAG3E"}
@@ -1,35 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractRetryReason = exports.extractRetryNum = void 0;
4
+ const logger_1 = require("@slack/logger");
5
+ const HTTPModuleFunctions_1 = require("./HTTPModuleFunctions");
6
+ const logger = new logger_1.ConsoleLogger();
7
+ // Deprecated: this function will be removed in the near future
4
8
  function extractRetryNum(req) {
5
- let retryNum;
6
- const retryNumHeaderValue = req.headers['x-slack-retry-num'];
7
- if (retryNumHeaderValue === undefined) {
8
- retryNum = undefined;
9
- }
10
- else if (typeof retryNumHeaderValue === 'string') {
11
- retryNum = parseInt(retryNumHeaderValue, 10);
12
- }
13
- else if (Array.isArray(retryNumHeaderValue) && retryNumHeaderValue.length > 0) {
14
- retryNum = parseInt(retryNumHeaderValue[0], 10);
15
- }
16
- return retryNum;
9
+ logger.warn('This method is deprecated. Use HTTPModuleFunctions.extractRetryNumFromHTTPRequest(req) instead.');
10
+ return HTTPModuleFunctions_1.HTTPModuleFunctions.extractRetryNumFromHTTPRequest(req);
17
11
  }
18
12
  exports.extractRetryNum = extractRetryNum;
13
+ // Deprecated: this function will be removed in the near future
19
14
  function extractRetryReason(req) {
20
- let retryReason;
21
- const retryReasonHeaderValue = req.headers['x-slack-retry-reason'];
22
- if (retryReasonHeaderValue === undefined) {
23
- retryReason = undefined;
24
- }
25
- else if (typeof retryReasonHeaderValue === 'string') {
26
- retryReason = retryReasonHeaderValue;
27
- }
28
- else if (Array.isArray(retryReasonHeaderValue) && retryReasonHeaderValue.length > 0) {
29
- // eslint-disable-next-line prefer-destructuring
30
- retryReason = retryReasonHeaderValue[0];
31
- }
32
- return retryReason;
15
+ logger.warn('This method is deprecated. Use HTTPModuleFunctions.extractRetryReasonFromHTTPRequest(req) instead.');
16
+ return HTTPModuleFunctions_1.HTTPModuleFunctions.extractRetryReasonFromHTTPRequest(req);
33
17
  }
34
18
  exports.extractRetryReason = extractRetryReason;
35
19
  //# sourceMappingURL=http-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/receivers/http-utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,eAAe,CAAC,GAAoB;IAClD,IAAI,QAAQ,CAAC;IACb,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7D,IAAI,mBAAmB,KAAK,SAAS,EAAE;QACrC,QAAQ,GAAG,SAAS,CAAC;KACtB;SAAM,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;QAClD,QAAQ,GAAG,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;KAC9C;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/E,QAAQ,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACjD;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAXD,0CAWC;AAED,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,IAAI,WAAW,CAAC;IAChB,MAAM,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnE,IAAI,sBAAsB,KAAK,SAAS,EAAE;QACxC,WAAW,GAAG,SAAS,CAAC;KACzB;SAAM,IAAI,OAAO,sBAAsB,KAAK,QAAQ,EAAE;QACrD,WAAW,GAAG,sBAAsB,CAAC;KACtC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;QACrF,gDAAgD;QAChD,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;KACzC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAZD,gDAYC"}
1
+ {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/receivers/http-utils.ts"],"names":[],"mappings":";;;AAAA,0CAA8C;AAE9C,+DAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;AAEnC,+DAA+D;AAC/D,SAAgB,eAAe,CAAC,GAAoB;IAClD,MAAM,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IAC/G,OAAO,yCAAmB,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC;AAHD,0CAGC;AAED,+DAA+D;AAC/D,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,MAAM,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;IAClH,OAAO,yCAAmB,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAHD,gDAGC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-html-for-install-path.d.ts","sourceRoot":"","sources":["../../src/receivers/render-html-for-install-path.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAcrF;AAGD,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE"}
1
+ {"version":3,"file":"render-html-for-install-path.d.ts","sourceRoot":"","sources":["../../src/receivers/render-html-for-install-path.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAgBrF;AAID,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderHtmlForInstallPath = void 0;
4
+ const logger_1 = require("@slack/logger");
5
+ const logger = new logger_1.ConsoleLogger();
6
+ // Deprecated: this function will be removed in the near future
7
+ // Use the ones from @slack/oauth (v2.5 or newer) instead
4
8
  function defaultRenderHtmlForInstallPath(addToSlackUrl) {
9
+ logger.warn('This method is deprecated. Use defaultRenderHtmlForInstallPath from @slack/oatuh instead.');
10
+ // TODO: replace the internals of this method with the one from @slack/oauth@2.5 or newer
5
11
  return `<html>
6
12
  <body>
7
13
  <a href="${addToSlackUrl}">
@@ -17,6 +23,7 @@ function defaultRenderHtmlForInstallPath(addToSlackUrl) {
17
23
  </html>`;
18
24
  }
19
25
  exports.default = defaultRenderHtmlForInstallPath;
26
+ // Deprecated: this function will be removed in the near future
20
27
  // For backward-compatibility
21
28
  function renderHtmlForInstallPath(addToSlackUrl) {
22
29
  return defaultRenderHtmlForInstallPath(addToSlackUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"render-html-for-install-path.js","sourceRoot":"","sources":["../../src/receivers/render-html-for-install-path.ts"],"names":[],"mappings":";;;AAAA,SAAwB,+BAA+B,CAAC,aAAqB;IAC3E,OAAO;;mBAEU,aAAa;;;;;;;;;;YAUpB,CAAC;AACb,CAAC;AAdD,kDAcC;AAED,6BAA6B;AAC7B,SAAgB,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,+BAA+B,CAAC,aAAa,CAAC,CAAC;AACxD,CAAC;AAFD,4DAEC"}
1
+ {"version":3,"file":"render-html-for-install-path.js","sourceRoot":"","sources":["../../src/receivers/render-html-for-install-path.ts"],"names":[],"mappings":";;;AAAA,0CAA8C;AAE9C,MAAM,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;AAEnC,+DAA+D;AAC/D,yDAAyD;AACzD,SAAwB,+BAA+B,CAAC,aAAqB;IAC3E,MAAM,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IACzG,yFAAyF;IACzF,OAAO;;mBAEU,aAAa;;;;;;;;;;YAUpB,CAAC;AACb,CAAC;AAhBD,kDAgBC;AAED,+DAA+D;AAC/D,6BAA6B;AAC7B,SAAgB,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,+BAA+B,CAAC,aAAa,CAAC,CAAC;AACxD,CAAC;AAFD,4DAEC"}
@@ -1,41 +1,33 @@
1
- /**
2
- * Functions used to verify the authenticity of incoming HTTP requests from Slack.
3
- *
4
- * The functions in this file are intentionally generic (don't depend on any particular web framework) and
5
- * time-independent (for testing) so they can be used in a wide variety of applications. The intention is to distribute
6
- * these functions in its own package.
7
- *
8
- * For now, there is some duplication between the contents of this file and ExpressReceiver.ts. Later, the duplication
9
- * can be reduced by implementing the equivalent functionality in terms of the functions in this file.
10
- */
11
1
  /// <reference types="node" />
12
- import type { Logger } from '@slack/logger';
2
+ import { Logger } from '@slack/logger';
13
3
  import type { IncomingMessage, ServerResponse } from 'http';
14
- export interface VerifyOptions {
15
- enabled?: boolean;
4
+ import { BufferedIncomingMessage } from './BufferedIncomingMessage';
5
+ import { RequestVerificationOptions } from './HTTPModuleFunctions';
6
+ export interface SlackRequestVerificationOptions {
16
7
  signingSecret: string;
17
- nowMs?: () => number;
8
+ body: string;
9
+ headers: {
10
+ 'x-slack-signature': string;
11
+ 'x-slack-request-timestamp': number;
12
+ };
13
+ nowMilliseconds?: number;
18
14
  logger?: Logger;
19
15
  }
20
- export interface BufferedIncomingMessage extends IncomingMessage {
21
- rawBody: Buffer;
22
- }
23
16
  /**
24
- * Verify the authenticity of an incoming HTTP request from Slack and buffer the HTTP body.
25
- *
26
- * When verification succeeds, the returned promise is resolved. When verification fails, the returned promise is
27
- * rejected with an error describing the reason. IMPORTANT: The error messages may contain sensitive information about
28
- * failures, do not return the error message text to users in a production environment. It's recommended to catch all
29
- * errors and return an opaque failure (HTTP status code 401, no body).
30
- *
31
- * Verification requires consuming `req` as a Readable stream. If the `req` was consumed before this function is called,
32
- * then this function expects it to be stored as a Buffer at `req.rawBody`. This is a convention used by infrastructure
33
- * platforms such as Google Cloud Platform. When the function returns, the buffered body is stored at the `req.rawBody`
34
- * property for further handling.
35
- *
36
- * The function is designed to be curry-able for use as a standard http RequestListener, and therefore keeps `req` and
37
- * `res` are the last arguments. However, the function is also async, which means when it is curried for use as a
38
- * RequestListener, the caller should also capture and use the return value.
17
+ * Verifies the signature of an incoming request from Slack.
18
+ * If the requst is invalid, this method throws an exception with the erorr details.
19
+ */
20
+ export declare function verifySlackRequest(options: SlackRequestVerificationOptions): void;
21
+ /**
22
+ * Verifies the signature of an incoming request from Slack.
23
+ * If the requst is invalid, this method returns false.
39
24
  */
40
- export declare function verify(options: VerifyOptions, req: IncomingMessage, _res?: ServerResponse): Promise<BufferedIncomingMessage>;
25
+ export declare function isValidSlackRequest(options: SlackRequestVerificationOptions): boolean;
26
+ export interface VerifyOptions extends RequestVerificationOptions {
27
+ enabled?: boolean;
28
+ signingSecret: string;
29
+ nowMs?: () => number;
30
+ logger?: Logger;
31
+ }
32
+ export declare function verify(options: VerifyOptions, req: IncomingMessage, res?: ServerResponse): Promise<BufferedIncomingMessage>;
41
33
  //# sourceMappingURL=verify-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-request.d.ts","sourceRoot":"","sources":["../../src/receivers/verify-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAI5D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAiDlC"}
1
+ {"version":3,"file":"verify-request.d.ts","sourceRoot":"","sources":["../../src/receivers/verify-request.ts"],"names":[],"mappings":";AACA,OAAO,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAuB,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQxF,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,mBAAmB,EAAE,MAAM,CAAC;QAC5B,2BAA2B,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,+BAA+B,GAAG,IAAI,CAkCjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAUrF;AASD,MAAM,WAAW,aAAc,SAAQ,0BAA0B;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAsB,MAAM,CAC1B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,eAAe,EACpB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAGlC"}