@slack/bolt 4.0.0-nextGen.9 → 4.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -16
- package/dist/App.d.ts +39 -80
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +223 -234
- package/dist/App.js.map +1 -1
- package/dist/CustomFunction.d.ts +58 -0
- package/dist/CustomFunction.d.ts.map +1 -0
- package/dist/CustomFunction.js +144 -0
- package/dist/CustomFunction.js.map +1 -0
- package/dist/WorkflowStep.d.ts +89 -36
- package/dist/WorkflowStep.d.ts.map +1 -1
- package/dist/WorkflowStep.js +29 -8
- package/dist/WorkflowStep.js.map +1 -1
- package/dist/conversation-store.d.ts +1 -1
- package/dist/conversation-store.d.ts.map +1 -1
- package/dist/conversation-store.js +3 -3
- package/dist/conversation-store.js.map +1 -1
- package/dist/errors.d.ts +12 -7
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +42 -53
- package/dist/errors.js.map +1 -1
- package/dist/helpers.d.ts +16 -3
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +43 -11
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/middleware/builtin.d.ts +20 -23
- package/dist/middleware/builtin.d.ts.map +1 -1
- package/dist/middleware/builtin.js +93 -110
- package/dist/middleware/builtin.js.map +1 -1
- package/dist/middleware/process.d.ts +3 -3
- package/dist/middleware/process.d.ts.map +1 -1
- package/dist/middleware/process.js +1 -1
- package/dist/middleware/process.js.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts +77 -16
- package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.js +53 -25
- package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
- package/dist/receivers/BufferedIncomingMessage.d.ts +2 -1
- package/dist/receivers/BufferedIncomingMessage.d.ts.map +1 -1
- package/dist/receivers/ExpressReceiver.d.ts +13 -13
- package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
- package/dist/receivers/ExpressReceiver.js +70 -70
- package/dist/receivers/ExpressReceiver.js.map +1 -1
- package/dist/receivers/HTTPModuleFunctions.d.ts +18 -20
- package/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -1
- package/dist/receivers/HTTPModuleFunctions.js +189 -171
- package/dist/receivers/HTTPModuleFunctions.js.map +1 -1
- package/dist/receivers/HTTPReceiver.d.ts +14 -14
- package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
- package/dist/receivers/HTTPReceiver.js +102 -48
- package/dist/receivers/HTTPReceiver.js.map +1 -1
- package/dist/receivers/HTTPResponseAck.d.ts +7 -7
- package/dist/receivers/HTTPResponseAck.d.ts.map +1 -1
- package/dist/receivers/HTTPResponseAck.js +37 -5
- package/dist/receivers/HTTPResponseAck.js.map +1 -1
- package/dist/receivers/ParamsIncomingMessage.d.ts +14 -0
- package/dist/receivers/ParamsIncomingMessage.d.ts.map +1 -0
- package/dist/{types/block-suggestion/index.js → receivers/ParamsIncomingMessage.js} +1 -1
- package/dist/receivers/ParamsIncomingMessage.js.map +1 -0
- package/dist/receivers/SocketModeFunctions.d.ts +3 -5
- package/dist/receivers/SocketModeFunctions.d.ts.map +1 -1
- package/dist/receivers/SocketModeFunctions.js +14 -23
- package/dist/receivers/SocketModeFunctions.js.map +1 -1
- package/dist/receivers/SocketModeReceiver.d.ts +10 -9
- package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
- package/dist/receivers/SocketModeReceiver.js +41 -25
- package/dist/receivers/SocketModeReceiver.js.map +1 -1
- package/dist/receivers/custom-routes.d.ts +4 -3
- package/dist/receivers/custom-routes.d.ts.map +1 -1
- package/dist/receivers/custom-routes.js +10 -9
- package/dist/receivers/custom-routes.js.map +1 -1
- package/dist/receivers/verify-redirect-opts.d.ts +1 -1
- package/dist/receivers/verify-redirect-opts.d.ts.map +1 -1
- package/dist/receivers/verify-redirect-opts.js +3 -3
- package/dist/receivers/verify-redirect-opts.js.map +1 -1
- package/dist/receivers/verify-request.d.ts +1 -12
- package/dist/receivers/verify-request.d.ts.map +1 -1
- package/dist/receivers/verify-request.js +4 -18
- package/dist/receivers/verify-request.js.map +1 -1
- package/dist/types/actions/block-action.d.ts +41 -22
- package/dist/types/actions/block-action.d.ts.map +1 -1
- package/dist/types/actions/dialog-action.d.ts +0 -4
- package/dist/types/actions/dialog-action.d.ts.map +1 -1
- package/dist/types/actions/index.d.ts +25 -11
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/index.js +1 -0
- package/dist/types/actions/index.js.map +1 -1
- package/dist/types/actions/interactive-message.d.ts +3 -3
- package/dist/types/actions/interactive-message.d.ts.map +1 -1
- package/dist/types/actions/workflow-step-edit.d.ts +7 -7
- package/dist/types/actions/workflow-step-edit.d.ts.map +1 -1
- package/dist/types/command/index.d.ts +1 -2
- package/dist/types/command/index.d.ts.map +1 -1
- package/dist/types/events/index.d.ts +26 -24
- package/dist/types/events/index.d.ts.map +1 -1
- package/dist/types/events/index.js +4 -15
- package/dist/types/events/index.js.map +1 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/middleware.d.ts +30 -30
- package/dist/types/middleware.d.ts.map +1 -1
- package/dist/types/middleware.js +3 -0
- package/dist/types/middleware.js.map +1 -1
- package/dist/types/options/index.d.ts +23 -59
- package/dist/types/options/index.d.ts.map +1 -1
- package/dist/types/receiver.d.ts +3 -3
- package/dist/types/receiver.d.ts.map +1 -1
- package/dist/types/shortcuts/global-shortcut.d.ts.map +1 -1
- package/dist/types/shortcuts/index.d.ts +14 -9
- package/dist/types/shortcuts/index.d.ts.map +1 -1
- package/dist/types/shortcuts/message-shortcut.d.ts.map +1 -1
- package/dist/types/utilities.d.ts +23 -13
- package/dist/types/utilities.d.ts.map +1 -1
- package/dist/types/utilities.js +7 -0
- package/dist/types/utilities.js.map +1 -1
- package/dist/types/view/index.d.ts +148 -12
- package/dist/types/view/index.d.ts.map +1 -1
- package/package.json +32 -61
- package/dist/Manifest.d.ts +0 -5
- package/dist/Manifest.d.ts.map +0 -1
- package/dist/Manifest.js +0 -16
- package/dist/Manifest.js.map +0 -1
- package/dist/SlackFunction.d.ts +0 -190
- package/dist/SlackFunction.d.ts.map +0 -1
- package/dist/SlackFunction.js +0 -441
- package/dist/SlackFunction.js.map +0 -1
- package/dist/Subscription.d.ts +0 -61
- package/dist/Subscription.d.ts.map +0 -1
- package/dist/Subscription.js +0 -169
- package/dist/Subscription.js.map +0 -1
- package/dist/cli/check-update.d.ts +0 -3
- package/dist/cli/check-update.d.ts.map +0 -1
- package/dist/cli/check-update.js +0 -13
- package/dist/cli/check-update.js.map +0 -1
- package/dist/cli/get-hooks.d.ts +0 -2
- package/dist/cli/get-hooks.d.ts.map +0 -1
- package/dist/cli/get-hooks.js +0 -19
- package/dist/cli/get-hooks.js.map +0 -1
- package/dist/cli/get-manifest.d.ts +0 -3
- package/dist/cli/get-manifest.d.ts.map +0 -1
- package/dist/cli/get-manifest.js +0 -16
- package/dist/cli/get-manifest.js.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.d.ts +0 -49
- package/dist/cli/hook-utils/get-check-update-data.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.js +0 -252
- package/dist/cli/hook-utils/get-check-update-data.js.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.spec.d.ts +0 -2
- package/dist/cli/hook-utils/get-check-update-data.spec.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-check-update-data.spec.js +0 -266
- package/dist/cli/hook-utils/get-check-update-data.spec.js.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.d.ts +0 -7
- package/dist/cli/hook-utils/get-manifest-data.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.js +0 -30
- package/dist/cli/hook-utils/get-manifest-data.js.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.spec.d.ts +0 -2
- package/dist/cli/hook-utils/get-manifest-data.spec.d.ts.map +0 -1
- package/dist/cli/hook-utils/get-manifest-data.spec.js +0 -113
- package/dist/cli/hook-utils/get-manifest-data.spec.js.map +0 -1
- package/dist/cli/hook-utils/manifest.d.ts +0 -30
- package/dist/cli/hook-utils/manifest.d.ts.map +0 -1
- package/dist/cli/hook-utils/manifest.js +0 -103
- package/dist/cli/hook-utils/manifest.js.map +0 -1
- package/dist/cli/hook-utils/manifest.spec.d.ts +0 -2
- package/dist/cli/hook-utils/manifest.spec.d.ts.map +0 -1
- package/dist/cli/hook-utils/manifest.spec.js +0 -79
- package/dist/cli/hook-utils/manifest.spec.js.map +0 -1
- package/dist/cli/run.d.ts +0 -2
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js +0 -37
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/start.d.ts +0 -3
- package/dist/cli/start.d.ts.map +0 -1
- package/dist/cli/start.js +0 -40
- package/dist/cli/start.js.map +0 -1
- package/dist/receivers/http-utils.d.ts +0 -5
- package/dist/receivers/http-utils.d.ts.map +0 -1
- package/dist/receivers/http-utils.js +0 -19
- package/dist/receivers/http-utils.js.map +0 -1
- package/dist/receivers/render-html-for-install-path.d.ts +0 -3
- package/dist/receivers/render-html-for-install-path.d.ts.map +0 -1
- package/dist/receivers/render-html-for-install-path.js +0 -32
- package/dist/receivers/render-html-for-install-path.js.map +0 -1
- package/dist/types/block-suggestion/index.d.ts +0 -97
- package/dist/types/block-suggestion/index.d.ts.map +0 -1
- package/dist/types/block-suggestion/index.js.map +0 -1
- package/dist/types/events/base-events.d.ts +0 -1135
- package/dist/types/events/base-events.d.ts.map +0 -1
- package/dist/types/events/base-events.js +0 -5
- package/dist/types/events/base-events.js.map +0 -1
- package/dist/types/events/message-events.d.ts +0 -348
- package/dist/types/events/message-events.d.ts.map +0 -1
- package/dist/types/events/message-events.js +0 -3
- package/dist/types/events/message-events.js.map +0 -1
- package/dist/types/functions/index.d.ts +0 -26
- package/dist/types/functions/index.d.ts.map +0 -1
- package/dist/types/functions/index.js +0 -3
- package/dist/types/functions/index.js.map +0 -1
- package/dist/types/helpers.d.ts +0 -17
- package/dist/types/helpers.d.ts.map +0 -1
- package/dist/types/helpers.js +0 -3
- package/dist/types/helpers.js.map +0 -1
- package/dist/types/subscription/index.d.ts +0 -80
- package/dist/types/subscription/index.d.ts.map +0 -1
- package/dist/types/subscription/index.js +0 -3
- package/dist/types/subscription/index.js.map +0 -1
- package/src/cli/check-update.js +0 -13
- package/src/cli/get-hooks.js +0 -17
- package/src/cli/get-manifest.js +0 -16
- package/src/cli/hook-utils/get-check-update-data.js +0 -292
- package/src/cli/hook-utils/get-manifest-data.js +0 -39
- package/src/cli/hook-utils/manifest.js +0 -108
- package/src/cli/start.js +0 -43
|
@@ -3,196 +3,214 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
const querystring_1 = require("querystring");
|
|
6
|
+
exports.defaultUnhandledRequestHandler = exports.defaultProcessEventErrorHandler = exports.defaultAsyncDispatchErrorHandler = exports.defaultDispatchErrorHandler = exports.buildContentResponse = exports.buildSSLCheckResponse = exports.buildUrlVerificationResponse = exports.buildNoBodyResponse = exports.bufferIncomingMessage = exports.getHeader = exports.isBufferedIncomingMessage = exports.parseAndVerifyHTTPRequest = exports.parseHTTPRequestBody = exports.extractRetryReasonFromHTTPRequest = exports.extractRetryNumFromHTTPRequest = void 0;
|
|
7
|
+
const node_querystring_1 = require("node:querystring");
|
|
9
8
|
const raw_body_1 = __importDefault(require("raw-body"));
|
|
10
9
|
const errors_1 = require("../errors");
|
|
11
10
|
const verify_request_1 = require("./verify-request");
|
|
12
11
|
const verifyErrorPrefix = 'Failed to verify authenticity';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
let retryNum;
|
|
19
|
-
const retryNumHeaderValue = req.headers['x-slack-retry-num'];
|
|
20
|
-
if (retryNumHeaderValue === undefined) {
|
|
21
|
-
retryNum = undefined;
|
|
22
|
-
}
|
|
23
|
-
else if (typeof retryNumHeaderValue === 'string') {
|
|
24
|
-
retryNum = parseInt(retryNumHeaderValue, 10);
|
|
25
|
-
}
|
|
26
|
-
else if (Array.isArray(retryNumHeaderValue) && retryNumHeaderValue.length > 0) {
|
|
27
|
-
retryNum = parseInt(retryNumHeaderValue[0], 10);
|
|
28
|
-
}
|
|
29
|
-
return retryNum;
|
|
12
|
+
const extractRetryNumFromHTTPRequest = (req) => {
|
|
13
|
+
let retryNum;
|
|
14
|
+
const retryNumHeaderValue = req.headers['x-slack-retry-num'];
|
|
15
|
+
if (retryNumHeaderValue === undefined) {
|
|
16
|
+
retryNum = undefined;
|
|
30
17
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const retryReasonHeaderValue = req.headers['x-slack-retry-reason'];
|
|
34
|
-
if (retryReasonHeaderValue === undefined) {
|
|
35
|
-
retryReason = undefined;
|
|
36
|
-
}
|
|
37
|
-
else if (typeof retryReasonHeaderValue === 'string') {
|
|
38
|
-
retryReason = retryReasonHeaderValue;
|
|
39
|
-
}
|
|
40
|
-
else if (Array.isArray(retryReasonHeaderValue) && retryReasonHeaderValue.length > 0) {
|
|
41
|
-
// eslint-disable-next-line prefer-destructuring
|
|
42
|
-
retryReason = retryReasonHeaderValue[0];
|
|
43
|
-
}
|
|
44
|
-
return retryReason;
|
|
45
|
-
}
|
|
46
|
-
// ------------------------------------------
|
|
47
|
-
// HTTP request parsing and verification
|
|
48
|
-
// ------------------------------------------
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
-
static parseHTTPRequestBody(req) {
|
|
51
|
-
const bodyAsString = req.rawBody.toString();
|
|
52
|
-
const contentType = req.headers['content-type'];
|
|
53
|
-
if (contentType === 'application/x-www-form-urlencoded') {
|
|
54
|
-
const parsedQs = (0, querystring_1.parse)(bodyAsString);
|
|
55
|
-
const { payload } = parsedQs;
|
|
56
|
-
if (typeof payload === 'string') {
|
|
57
|
-
return JSON.parse(payload);
|
|
58
|
-
}
|
|
59
|
-
return parsedQs;
|
|
60
|
-
}
|
|
61
|
-
return JSON.parse(bodyAsString);
|
|
62
|
-
}
|
|
63
|
-
static async parseAndVerifyHTTPRequest(options, req, _res) {
|
|
64
|
-
const { signingSecret } = options;
|
|
65
|
-
// Consume the readable stream (or use the previously consumed readable stream)
|
|
66
|
-
const bufferedReq = await HTTPModuleFunctions.bufferIncomingMessage(req);
|
|
67
|
-
if (options.enabled !== undefined && !options.enabled) {
|
|
68
|
-
// As the validation is disabled, immediately return the buffered request
|
|
69
|
-
return bufferedReq;
|
|
70
|
-
}
|
|
71
|
-
const textBody = bufferedReq.rawBody.toString();
|
|
72
|
-
const contentType = req.headers['content-type'];
|
|
73
|
-
if (contentType === 'application/x-www-form-urlencoded') {
|
|
74
|
-
// `ssl_check=1` requests do not require x-slack-signature verification
|
|
75
|
-
const parsedQs = (0, querystring_1.parse)(textBody);
|
|
76
|
-
if (parsedQs && parsedQs.ssl_check) {
|
|
77
|
-
return bufferedReq;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Find the relevant request headers
|
|
81
|
-
const signature = HTTPModuleFunctions.getHeader(req, 'x-slack-signature');
|
|
82
|
-
const requestTimestampSec = Number(HTTPModuleFunctions.getHeader(req, 'x-slack-request-timestamp'));
|
|
83
|
-
(0, verify_request_1.verifySlackRequest)({
|
|
84
|
-
signingSecret,
|
|
85
|
-
body: textBody,
|
|
86
|
-
headers: {
|
|
87
|
-
'x-slack-signature': signature,
|
|
88
|
-
'x-slack-request-timestamp': requestTimestampSec,
|
|
89
|
-
},
|
|
90
|
-
logger: options.logger,
|
|
91
|
-
});
|
|
92
|
-
// Checks have passed! Return the value that has a side effect (the buffered request)
|
|
93
|
-
return bufferedReq;
|
|
18
|
+
else if (typeof retryNumHeaderValue === 'string') {
|
|
19
|
+
retryNum = Number.parseInt(retryNumHeaderValue, 10);
|
|
94
20
|
}
|
|
95
|
-
|
|
96
|
-
|
|
21
|
+
else if (Array.isArray(retryNumHeaderValue) && retryNumHeaderValue.length > 0) {
|
|
22
|
+
retryNum = Number.parseInt(retryNumHeaderValue[0], 10);
|
|
97
23
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
24
|
+
return retryNum;
|
|
25
|
+
};
|
|
26
|
+
exports.extractRetryNumFromHTTPRequest = extractRetryNumFromHTTPRequest;
|
|
27
|
+
const extractRetryReasonFromHTTPRequest = (req) => {
|
|
28
|
+
let retryReason;
|
|
29
|
+
const retryReasonHeaderValue = req.headers['x-slack-retry-reason'];
|
|
30
|
+
if (retryReasonHeaderValue === undefined) {
|
|
31
|
+
retryReason = undefined;
|
|
32
|
+
}
|
|
33
|
+
else if (typeof retryReasonHeaderValue === 'string') {
|
|
34
|
+
retryReason = retryReasonHeaderValue;
|
|
35
|
+
}
|
|
36
|
+
else if (Array.isArray(retryReasonHeaderValue) && retryReasonHeaderValue.length > 0) {
|
|
37
|
+
retryReason = retryReasonHeaderValue[0];
|
|
38
|
+
}
|
|
39
|
+
return retryReason;
|
|
40
|
+
};
|
|
41
|
+
exports.extractRetryReasonFromHTTPRequest = extractRetryReasonFromHTTPRequest;
|
|
42
|
+
// ------------------------------------------
|
|
43
|
+
// HTTP request parsing and verification
|
|
44
|
+
// ------------------------------------------
|
|
45
|
+
// biome-ignore lint/suspicious/noExplicitAny: HTTP request bodies could be anything
|
|
46
|
+
const parseHTTPRequestBody = (req) => {
|
|
47
|
+
const bodyAsString = req.rawBody.toString();
|
|
48
|
+
const contentType = req.headers['content-type'];
|
|
49
|
+
if (contentType === 'application/x-www-form-urlencoded') {
|
|
50
|
+
const parsedQs = (0, node_querystring_1.parse)(bodyAsString);
|
|
51
|
+
const { payload } = parsedQs;
|
|
52
|
+
if (typeof payload === 'string') {
|
|
53
|
+
return JSON.parse(payload);
|
|
54
|
+
}
|
|
55
|
+
return parsedQs;
|
|
56
|
+
}
|
|
57
|
+
return JSON.parse(bodyAsString);
|
|
58
|
+
};
|
|
59
|
+
exports.parseHTTPRequestBody = parseHTTPRequestBody;
|
|
60
|
+
const parseAndVerifyHTTPRequest = async (options, req, _res) => {
|
|
61
|
+
const { signingSecret } = options;
|
|
62
|
+
// Consume the readable stream (or use the previously consumed readable stream)
|
|
63
|
+
const bufferedReq = await (0, exports.bufferIncomingMessage)(req);
|
|
64
|
+
if (options.enabled !== undefined && !options.enabled) {
|
|
65
|
+
// As the validation is disabled, immediately return the buffered request
|
|
66
|
+
return bufferedReq;
|
|
104
67
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
68
|
+
const textBody = bufferedReq.rawBody.toString();
|
|
69
|
+
const contentType = req.headers['content-type'];
|
|
70
|
+
if (contentType === 'application/x-www-form-urlencoded') {
|
|
71
|
+
// `ssl_check=1` requests do not require x-slack-signature verification
|
|
72
|
+
const parsedQs = (0, node_querystring_1.parse)(textBody);
|
|
73
|
+
if (parsedQs?.ssl_check) {
|
|
74
|
+
return bufferedReq;
|
|
108
75
|
}
|
|
109
|
-
const bufferedRequest = req;
|
|
110
|
-
bufferedRequest.rawBody = await (0, raw_body_1.default)(req);
|
|
111
|
-
return bufferedRequest;
|
|
112
|
-
}
|
|
113
|
-
// ------------------------------------------
|
|
114
|
-
// HTTP response builder methods
|
|
115
|
-
// ------------------------------------------
|
|
116
|
-
static buildNoBodyResponse(res, status) {
|
|
117
|
-
res.writeHead(status);
|
|
118
|
-
res.end();
|
|
119
76
|
}
|
|
120
|
-
//
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
77
|
+
// Find the relevant request headers
|
|
78
|
+
const signature = (0, exports.getHeader)(req, 'x-slack-signature');
|
|
79
|
+
const requestTimestampSec = Number((0, exports.getHeader)(req, 'x-slack-request-timestamp'));
|
|
80
|
+
(0, verify_request_1.verifySlackRequest)({
|
|
81
|
+
signingSecret,
|
|
82
|
+
body: textBody,
|
|
83
|
+
headers: {
|
|
84
|
+
'x-slack-signature': signature,
|
|
85
|
+
'x-slack-request-timestamp': requestTimestampSec,
|
|
86
|
+
},
|
|
87
|
+
logger: options.logger,
|
|
88
|
+
});
|
|
89
|
+
// Checks have passed! Return the value that has a side effect (the buffered request)
|
|
90
|
+
return bufferedReq;
|
|
91
|
+
};
|
|
92
|
+
exports.parseAndVerifyHTTPRequest = parseAndVerifyHTTPRequest;
|
|
93
|
+
const isBufferedIncomingMessage = (req) => {
|
|
94
|
+
// TODO: why are we casting the argument if we're using this as a type guard?
|
|
95
|
+
return Buffer.isBuffer(req.rawBody);
|
|
96
|
+
};
|
|
97
|
+
exports.isBufferedIncomingMessage = isBufferedIncomingMessage;
|
|
98
|
+
const getHeader = (req, header) => {
|
|
99
|
+
const value = req.headers[header];
|
|
100
|
+
if (value === undefined || Array.isArray(value)) {
|
|
101
|
+
throw new Error(`${verifyErrorPrefix}: header ${header} did not have the expected type (received ${typeof value}, expected string)`);
|
|
102
|
+
}
|
|
103
|
+
return value;
|
|
104
|
+
};
|
|
105
|
+
exports.getHeader = getHeader;
|
|
106
|
+
const bufferIncomingMessage = async (req) => {
|
|
107
|
+
if ((0, exports.isBufferedIncomingMessage)(req)) {
|
|
108
|
+
return req;
|
|
124
109
|
}
|
|
125
|
-
|
|
110
|
+
const bufferedRequest = req;
|
|
111
|
+
bufferedRequest.rawBody = await (0, raw_body_1.default)(req);
|
|
112
|
+
return bufferedRequest;
|
|
113
|
+
};
|
|
114
|
+
exports.bufferIncomingMessage = bufferIncomingMessage;
|
|
115
|
+
// ------------------------------------------
|
|
116
|
+
// HTTP response builder methods
|
|
117
|
+
// ------------------------------------------
|
|
118
|
+
const buildNoBodyResponse = (res, status) => {
|
|
119
|
+
res.writeHead(status);
|
|
120
|
+
res.end();
|
|
121
|
+
};
|
|
122
|
+
exports.buildNoBodyResponse = buildNoBodyResponse;
|
|
123
|
+
// biome-ignore lint/suspicious/noExplicitAny: HTTP request bodies could be anything
|
|
124
|
+
const buildUrlVerificationResponse = (res, body) => {
|
|
125
|
+
res.writeHead(200, { 'content-type': 'application/json' });
|
|
126
|
+
res.end(JSON.stringify({ challenge: body.challenge }));
|
|
127
|
+
};
|
|
128
|
+
exports.buildUrlVerificationResponse = buildUrlVerificationResponse;
|
|
129
|
+
const buildSSLCheckResponse = (res) => {
|
|
130
|
+
res.writeHead(200);
|
|
131
|
+
res.end();
|
|
132
|
+
};
|
|
133
|
+
exports.buildSSLCheckResponse = buildSSLCheckResponse;
|
|
134
|
+
// biome-ignore lint/suspicious/noExplicitAny: HTTP request bodies could be anything
|
|
135
|
+
const buildContentResponse = (res, body) => {
|
|
136
|
+
if (!body) {
|
|
126
137
|
res.writeHead(200);
|
|
127
138
|
res.end();
|
|
128
139
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
res.writeHead(200);
|
|
133
|
-
res.end();
|
|
134
|
-
}
|
|
135
|
-
else if (typeof body === 'string') {
|
|
136
|
-
res.writeHead(200);
|
|
137
|
-
res.end(body);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
res.writeHead(200, { 'content-type': 'application/json' });
|
|
141
|
-
res.end(JSON.stringify(body));
|
|
142
|
-
}
|
|
140
|
+
else if (typeof body === 'string') {
|
|
141
|
+
res.writeHead(200);
|
|
142
|
+
res.end(body);
|
|
143
143
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
// The default dispatchErrorHandler implementation:
|
|
148
|
-
// Developers can customize this behavior by passing dispatchErrorHandler to the constructor
|
|
149
|
-
// Note that it was not possible to make this function async due to the limitation of http module
|
|
150
|
-
static defaultDispatchErrorHandler(args) {
|
|
151
|
-
const { error, logger, request, response } = args;
|
|
152
|
-
if ('code' in error) {
|
|
153
|
-
if (error.code === errors_1.ErrorCode.HTTPReceiverDeferredRequestError) {
|
|
154
|
-
logger.info(`Unhandled HTTP request (${request.method}) made to ${request.url}`);
|
|
155
|
-
response.writeHead(404);
|
|
156
|
-
response.end();
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
logger.error(`An unexpected error occurred during a request (${request.method}) made to ${request.url}`);
|
|
161
|
-
logger.debug(`Error details: ${error}`);
|
|
162
|
-
response.writeHead(500);
|
|
163
|
-
response.end();
|
|
144
|
+
else {
|
|
145
|
+
res.writeHead(200, { 'content-type': 'application/json' });
|
|
146
|
+
res.end(JSON.stringify(body));
|
|
164
147
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
148
|
+
};
|
|
149
|
+
exports.buildContentResponse = buildContentResponse;
|
|
150
|
+
// ------------------------------------------
|
|
151
|
+
// Error handlers for event processing
|
|
152
|
+
// ------------------------------------------
|
|
153
|
+
// The default dispatchErrorHandler implementation:
|
|
154
|
+
// Developers can customize this behavior by passing dispatchErrorHandler to the constructor
|
|
155
|
+
// Note that it was not possible to make this function async due to the limitation of http module
|
|
156
|
+
const defaultDispatchErrorHandler = (args) => {
|
|
157
|
+
const { error, logger, request, response } = args;
|
|
158
|
+
if ('code' in error) {
|
|
159
|
+
if (error.code === errors_1.ErrorCode.HTTPReceiverDeferredRequestError) {
|
|
160
|
+
logger.info(`Unhandled HTTP request (${request.method}) made to ${request.url}`);
|
|
161
|
+
response.writeHead(404);
|
|
162
|
+
response.end();
|
|
163
|
+
return;
|
|
181
164
|
}
|
|
182
|
-
|
|
165
|
+
}
|
|
166
|
+
logger.error(`An unexpected error occurred during a request (${request.method}) made to ${request.url}`);
|
|
167
|
+
logger.debug(`Error details: ${error}`);
|
|
168
|
+
response.writeHead(500);
|
|
169
|
+
response.end();
|
|
170
|
+
};
|
|
171
|
+
exports.defaultDispatchErrorHandler = defaultDispatchErrorHandler;
|
|
172
|
+
const defaultAsyncDispatchErrorHandler = async (args) => {
|
|
173
|
+
return (0, exports.defaultDispatchErrorHandler)(args);
|
|
174
|
+
};
|
|
175
|
+
exports.defaultAsyncDispatchErrorHandler = defaultAsyncDispatchErrorHandler;
|
|
176
|
+
// The default processEventErrorHandler implementation:
|
|
177
|
+
// Developers can customize this behavior by passing processEventErrorHandler to the constructor
|
|
178
|
+
const defaultProcessEventErrorHandler = async (args) => {
|
|
179
|
+
const { error, response, logger, storedResponse } = args;
|
|
180
|
+
// Check if the response headers have already been sent
|
|
181
|
+
if (response.headersSent) {
|
|
182
|
+
logger.error('An unhandled error occurred after ack() called in a listener');
|
|
183
183
|
logger.debug(`Error details: ${error}, storedResponse: ${storedResponse}`);
|
|
184
|
-
response.writeHead(500);
|
|
185
|
-
response.end();
|
|
186
184
|
return false;
|
|
187
185
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
186
|
+
if ('code' in error) {
|
|
187
|
+
if (error.code === errors_1.ErrorCode.AuthorizationError) {
|
|
188
|
+
// authorize function threw an exception, which means there is no valid installation data
|
|
189
|
+
response.writeHead(401);
|
|
190
|
+
response.end();
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
logger.error('An unhandled error occurred while Bolt processed an event');
|
|
195
|
+
logger.debug(`Error details: ${error}, storedResponse: ${storedResponse}`);
|
|
196
|
+
response.writeHead(500);
|
|
197
|
+
response.end();
|
|
198
|
+
return false;
|
|
199
|
+
};
|
|
200
|
+
exports.defaultProcessEventErrorHandler = defaultProcessEventErrorHandler;
|
|
201
|
+
// The default unhandledRequestHandler implementation:
|
|
202
|
+
// Developers can customize this behavior by passing unhandledRequestHandler to the constructor
|
|
203
|
+
// Note that this method cannot be an async function to align with the implementation using setTimeout
|
|
204
|
+
const defaultUnhandledRequestHandler = (args) => {
|
|
205
|
+
const { logger, response } = args;
|
|
206
|
+
logger.error('An incoming event was not acknowledged within 3 seconds. ' +
|
|
207
|
+
'Ensure that the ack() argument is called in a listener.');
|
|
208
|
+
// Check if the response has already been sent
|
|
209
|
+
if (!response.headersSent) {
|
|
210
|
+
// If not, set the status code and end the response to close the connection
|
|
211
|
+
response.writeHead(404); // Not Found
|
|
212
|
+
response.end();
|
|
195
213
|
}
|
|
196
|
-
}
|
|
197
|
-
exports.
|
|
214
|
+
};
|
|
215
|
+
exports.defaultUnhandledRequestHandler = defaultUnhandledRequestHandler;
|
|
198
216
|
//# sourceMappingURL=HTTPModuleFunctions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTTPModuleFunctions.js","sourceRoot":"","sources":["../../src/receivers/HTTPModuleFunctions.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"HTTPModuleFunctions.js","sourceRoot":"","sources":["../../src/receivers/HTTPModuleFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
import { Server, ServerOptions
|
|
5
|
-
import { Server as HTTPSServer, ServerOptions as HTTPSServerOptions } from 'https';
|
|
6
|
-
import { ListenOptions } from 'net';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import App from '../App';
|
|
10
|
-
import { Receiver } from '../types';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
4
|
+
import { type RequestListener, type Server, type ServerOptions } from 'node:http';
|
|
5
|
+
import { type Server as HTTPSServer, type ServerOptions as HTTPSServerOptions } from 'node:https';
|
|
6
|
+
import type { ListenOptions } from 'node:net';
|
|
7
|
+
import { LogLevel, type Logger } from '@slack/logger';
|
|
8
|
+
import { type CallbackOptions, type InstallPathOptions, InstallProvider, type InstallProviderOptions, type InstallURLOptions } from '@slack/oauth';
|
|
9
|
+
import type App from '../App';
|
|
10
|
+
import type { Receiver } from '../types';
|
|
11
|
+
import type { StringIndexed } from '../types/utilities';
|
|
12
|
+
import type { BufferedIncomingMessage } from './BufferedIncomingMessage';
|
|
13
|
+
import * as httpFunc from './HTTPModuleFunctions';
|
|
14
|
+
import { type CustomRoute } from './custom-routes';
|
|
15
15
|
export interface HTTPReceiverOptions {
|
|
16
16
|
signingSecret: string;
|
|
17
17
|
endpoints?: string | string[];
|
|
@@ -29,9 +29,9 @@ export interface HTTPReceiverOptions {
|
|
|
29
29
|
scopes?: InstallURLOptions['scopes'];
|
|
30
30
|
installerOptions?: HTTPReceiverInstallerOptions;
|
|
31
31
|
customPropertiesExtractor?: (request: BufferedIncomingMessage) => StringIndexed;
|
|
32
|
-
dispatchErrorHandler?: (args: ReceiverDispatchErrorHandlerArgs) => void;
|
|
33
|
-
processEventErrorHandler?: (args: ReceiverProcessEventErrorHandlerArgs) => Promise<boolean>;
|
|
34
|
-
unhandledRequestHandler?: (args: ReceiverUnhandledRequestHandlerArgs) => void;
|
|
32
|
+
dispatchErrorHandler?: (args: httpFunc.ReceiverDispatchErrorHandlerArgs) => void;
|
|
33
|
+
processEventErrorHandler?: (args: httpFunc.ReceiverProcessEventErrorHandlerArgs) => Promise<boolean>;
|
|
34
|
+
unhandledRequestHandler?: (args: httpFunc.ReceiverUnhandledRequestHandlerArgs) => void;
|
|
35
35
|
unhandledRequestTimeoutMillis?: number;
|
|
36
36
|
}
|
|
37
37
|
export interface HTTPReceiverInstallerOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTTPReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/HTTPReceiver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"HTTPReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/HTTPReceiver.ts"],"names":[],"mappings":"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"}
|