@slack/bolt 3.6.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +4 -2
- package/dist/App.d.ts +60 -4
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +179 -100
- package/dist/App.js.map +1 -1
- package/dist/WorkflowStep.d.ts.map +1 -1
- package/dist/WorkflowStep.js +25 -28
- package/dist/WorkflowStep.js.map +1 -1
- package/dist/conversation-store.d.ts.map +1 -1
- package/dist/conversation-store.js +5 -6
- package/dist/conversation-store.js.map +1 -1
- package/dist/errors.d.ts +13 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +25 -9
- package/dist/errors.js.map +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +1 -0
- package/dist/helpers.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/builtin.d.ts.map +1 -1
- package/dist/middleware/builtin.js +0 -19
- package/dist/middleware/builtin.js.map +1 -1
- package/dist/middleware/process.d.ts +1 -1
- package/dist/middleware/process.d.ts.map +1 -1
- package/dist/middleware/process.js +1 -2
- package/dist/middleware/process.js.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts +4 -1
- package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
- package/dist/receivers/AwsLambdaReceiver.js +15 -20
- package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
- package/dist/receivers/ExpressReceiver.d.ts +20 -7
- package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
- package/dist/receivers/ExpressReceiver.js +167 -87
- package/dist/receivers/ExpressReceiver.js.map +1 -1
- package/dist/receivers/HTTPReceiver.d.ts +54 -4
- package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
- package/dist/receivers/HTTPReceiver.js +240 -94
- package/dist/receivers/HTTPReceiver.js.map +1 -1
- package/dist/receivers/SocketModeReceiver.d.ts +18 -1
- package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
- package/dist/receivers/SocketModeReceiver.js +109 -41
- package/dist/receivers/SocketModeReceiver.js.map +1 -1
- package/dist/receivers/custom-routes.d.ts +14 -0
- package/dist/receivers/custom-routes.d.ts.map +1 -0
- package/dist/receivers/custom-routes.js +33 -0
- package/dist/receivers/custom-routes.js.map +1 -0
- package/dist/receivers/http-utils.d.ts +5 -0
- package/dist/receivers/http-utils.d.ts.map +1 -0
- package/dist/receivers/http-utils.js +35 -0
- package/dist/receivers/http-utils.js.map +1 -0
- package/dist/receivers/render-html-for-install-path.d.ts +1 -0
- package/dist/receivers/render-html-for-install-path.d.ts.map +1 -1
- package/dist/receivers/render-html-for-install-path.js +6 -1
- package/dist/receivers/render-html-for-install-path.js.map +1 -1
- package/dist/receivers/verify-redirect-opts.d.ts +7 -0
- package/dist/receivers/verify-redirect-opts.d.ts.map +1 -0
- package/dist/receivers/verify-redirect-opts.js +23 -0
- package/dist/receivers/verify-redirect-opts.js.map +1 -0
- package/dist/receivers/verify-request.d.ts +1 -0
- package/dist/receivers/verify-request.d.ts.map +1 -1
- package/dist/receivers/verify-request.js +8 -4
- package/dist/receivers/verify-request.js.map +1 -1
- package/dist/types/actions/block-action.d.ts +8 -1
- package/dist/types/actions/block-action.d.ts.map +1 -1
- package/dist/types/actions/index.d.ts +4 -4
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/index.js.map +1 -1
- package/dist/types/actions/workflow-step-edit.d.ts.map +1 -1
- package/dist/types/events/base-events.d.ts +5 -5
- package/dist/types/events/base-events.d.ts.map +1 -1
- package/dist/types/events/base-events.js.map +1 -1
- package/dist/types/events/index.d.ts +4 -4
- package/dist/types/events/index.d.ts.map +1 -1
- package/dist/types/events/index.js.map +1 -1
- package/dist/types/events/message-events.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +2 -2
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/middleware.d.ts +10 -1
- package/dist/types/middleware.d.ts.map +1 -1
- package/dist/types/middleware.js +11 -0
- package/dist/types/middleware.js.map +1 -1
- package/dist/types/options/index.d.ts +2 -2
- package/dist/types/options/index.d.ts.map +1 -1
- package/dist/types/receiver.d.ts +3 -0
- package/dist/types/receiver.d.ts.map +1 -1
- package/dist/types/shortcuts/index.d.ts +2 -2
- package/dist/types/shortcuts/index.d.ts.map +1 -1
- package/dist/types/shortcuts/index.js.map +1 -1
- package/dist/types/shortcuts/message-shortcut.d.ts.map +1 -1
- package/dist/types/utilities.d.ts.map +1 -1
- package/package.json +18 -20
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* eslint-disable @typescript-eslint/explicit-
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
|
+
const url_1 = require("url");
|
|
4
8
|
const socket_mode_1 = require("@slack/socket-mode");
|
|
5
9
|
const http_1 = require("http");
|
|
6
10
|
const logger_1 = require("@slack/logger");
|
|
7
11
|
const oauth_1 = require("@slack/oauth");
|
|
8
|
-
const render_html_for_install_path_1 = require("./render-html-for-install-path");
|
|
12
|
+
const render_html_for_install_path_1 = __importDefault(require("./render-html-for-install-path"));
|
|
13
|
+
const custom_routes_1 = require("./custom-routes");
|
|
14
|
+
const verify_redirect_opts_1 = require("./verify-redirect-opts");
|
|
9
15
|
/**
|
|
10
16
|
* Receives Events, Slash Commands, and Actions of a web socket connection
|
|
11
17
|
*/
|
|
12
18
|
class SocketModeReceiver {
|
|
13
|
-
constructor({ appToken, logger = undefined, logLevel = logger_1.LogLevel.INFO, clientId = undefined, clientSecret = undefined, stateSecret = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, }) {
|
|
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;
|
|
14
21
|
this.installer = undefined;
|
|
15
22
|
this.client = new socket_mode_1.SocketModeClient({
|
|
16
23
|
appToken,
|
|
@@ -18,16 +25,20 @@ class SocketModeReceiver {
|
|
|
18
25
|
logger,
|
|
19
26
|
clientOptions: installerOptions.clientOptions,
|
|
20
27
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
this.logger = logger !== null && logger !== void 0 ? logger : (() => {
|
|
29
|
+
const defaultLogger = new logger_1.ConsoleLogger();
|
|
30
|
+
defaultLogger.setLevel(logLevel);
|
|
31
|
+
return defaultLogger;
|
|
32
|
+
})();
|
|
33
|
+
this.routes = (0, custom_routes_1.prepareRoutes)(customRoutes);
|
|
34
|
+
// Verify redirect options if supplied, throws coded error if invalid
|
|
35
|
+
(0, verify_redirect_opts_1.verifyRedirectOpts)({ redirectUri, redirectUriPath: installerOptions.redirectUriPath });
|
|
28
36
|
if (clientId !== undefined &&
|
|
29
37
|
clientSecret !== undefined &&
|
|
30
|
-
(
|
|
38
|
+
(installerOptions.stateVerification === false || // state store not needed
|
|
39
|
+
stateSecret !== undefined ||
|
|
40
|
+
installerOptions.stateStore !== undefined) // user provided state store
|
|
41
|
+
) {
|
|
31
42
|
this.installer = new oauth_1.InstallProvider({
|
|
32
43
|
clientId,
|
|
33
44
|
clientSecret,
|
|
@@ -36,54 +47,101 @@ class SocketModeReceiver {
|
|
|
36
47
|
logLevel,
|
|
37
48
|
logger,
|
|
38
49
|
stateStore: installerOptions.stateStore,
|
|
39
|
-
|
|
50
|
+
stateVerification: installerOptions.stateVerification,
|
|
51
|
+
authVersion: (_a = installerOptions.authVersion) !== null && _a !== void 0 ? _a : 'v2',
|
|
40
52
|
clientOptions: installerOptions.clientOptions,
|
|
41
53
|
authorizationUrl: installerOptions.authorizationUrl,
|
|
42
54
|
});
|
|
43
55
|
}
|
|
44
|
-
// Add OAuth routes to receiver
|
|
45
|
-
if (this.installer !== undefined) {
|
|
56
|
+
// Add OAuth and/or custom routes to receiver
|
|
57
|
+
if (this.installer !== undefined || customRoutes.length) {
|
|
46
58
|
// use default or passed in redirect path
|
|
47
59
|
const redirectUriPath = installerOptions.redirectUriPath === undefined ? '/slack/oauth_redirect' : installerOptions.redirectUriPath;
|
|
48
60
|
// use default or passed in installPath
|
|
49
61
|
const installPath = installerOptions.installPath === undefined ? '/slack/install' : installerOptions.installPath;
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const directInstallEnabled = installerOptions.directInstall !== undefined && installerOptions.directInstall;
|
|
63
|
+
this.httpServerPort = installerOptions.port === undefined ? 3000 : installerOptions.port;
|
|
64
|
+
this.httpServer = (0, http_1.createServer)(async (req, res) => {
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
66
|
+
const method = req.method.toUpperCase();
|
|
67
|
+
// Handle OAuth-related requests
|
|
68
|
+
if (this.installer) {
|
|
69
|
+
// create install url options
|
|
70
|
+
const installUrlOptions = {
|
|
71
|
+
metadata: installerOptions.metadata,
|
|
72
|
+
scopes: scopes !== null && scopes !== void 0 ? scopes : [],
|
|
73
|
+
userScopes: installerOptions.userScopes,
|
|
74
|
+
redirectUri,
|
|
75
|
+
};
|
|
76
|
+
// Installation has been initiated
|
|
77
|
+
if (req.url && req.url.startsWith(redirectUriPath)) {
|
|
78
|
+
const { stateVerification, callbackOptions } = installerOptions;
|
|
79
|
+
if (stateVerification === false) {
|
|
80
|
+
// if stateVerification is disabled make install options available to handler
|
|
81
|
+
// 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
|
+
await this.installer.handleCallback(req, res, callbackOptions, installUrlOptions);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
87
|
+
await this.installer.handleCallback(req, res, callbackOptions);
|
|
88
|
+
}
|
|
89
|
+
return;
|
|
64
90
|
}
|
|
65
|
-
|
|
66
|
-
|
|
91
|
+
// Visiting the installation endpoint
|
|
92
|
+
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
|
+
}
|
|
67
114
|
}
|
|
68
115
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
116
|
+
// Handle request for custom routes
|
|
117
|
+
if (customRoutes.length && req.url) {
|
|
118
|
+
// NOTE: the domain and scheme are irrelevant here.
|
|
119
|
+
// The URL object is only used to safely obtain the path to match
|
|
120
|
+
const { pathname: path } = new url_1.URL(req.url, 'http://localhost');
|
|
121
|
+
const match = this.routes[path] && this.routes[path][method] !== undefined;
|
|
122
|
+
if (match) {
|
|
123
|
+
this.routes[path][method](req, res);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
74
126
|
}
|
|
127
|
+
this.logger.info(`An unhandled HTTP request (${req.method}) made to ${req.url} was ignored`);
|
|
128
|
+
res.writeHead(404, {});
|
|
129
|
+
res.end();
|
|
75
130
|
});
|
|
76
|
-
|
|
77
|
-
this.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
server.listen(port);
|
|
131
|
+
this.logger.debug(`Listening for HTTP requests on port ${this.httpServerPort}`);
|
|
132
|
+
if (this.installer) {
|
|
133
|
+
this.logger.debug(`Go to http://localhost:${this.httpServerPort}${installPath} to initiate OAuth flow`);
|
|
134
|
+
}
|
|
81
135
|
}
|
|
82
|
-
this.client.on('slack_event', async (
|
|
136
|
+
this.client.on('slack_event', async (args) => {
|
|
83
137
|
var _a;
|
|
138
|
+
const { ack, body, retry_num, retry_reason } = args;
|
|
84
139
|
const event = {
|
|
85
140
|
body,
|
|
86
141
|
ack,
|
|
142
|
+
retryNum: retry_num,
|
|
143
|
+
retryReason: retry_reason,
|
|
144
|
+
customProperties: customPropertiesExtractor(args),
|
|
87
145
|
};
|
|
88
146
|
await ((_a = this.app) === null || _a === void 0 ? void 0 : _a.processEvent(event));
|
|
89
147
|
});
|
|
@@ -92,10 +150,20 @@ class SocketModeReceiver {
|
|
|
92
150
|
this.app = app;
|
|
93
151
|
}
|
|
94
152
|
start() {
|
|
153
|
+
if (this.httpServer !== undefined) {
|
|
154
|
+
// This HTTP server is only for the OAuth flow support
|
|
155
|
+
this.httpServer.listen(this.httpServerPort);
|
|
156
|
+
}
|
|
95
157
|
// start socket mode client
|
|
96
158
|
return this.client.start();
|
|
97
159
|
}
|
|
98
160
|
stop() {
|
|
161
|
+
if (this.httpServer !== undefined) {
|
|
162
|
+
// This HTTP server is only for the OAuth flow support
|
|
163
|
+
this.httpServer.close((error) => {
|
|
164
|
+
this.logger.error(`Failed to shutdown the HTTP server for OAuth flow: ${error}`);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
99
167
|
return new Promise((resolve, reject) => {
|
|
100
168
|
try {
|
|
101
169
|
this.client.disconnect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketModeReceiver.js","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SocketModeReceiver.js","sourceRoot":"","sources":["../../src/receivers/SocketModeReceiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
+
export interface CustomRoute {
|
|
4
|
+
path: string;
|
|
5
|
+
method: string | string[];
|
|
6
|
+
handler: (req: IncomingMessage, res: ServerResponse) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface ReceiverRoutes {
|
|
9
|
+
[url: string]: {
|
|
10
|
+
[method: string]: (req: IncomingMessage, res: ServerResponse) => void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function prepareRoutes(customRoutes: CustomRoute[]): ReceiverRoutes;
|
|
14
|
+
//# sourceMappingURL=custom-routes.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareRoutes = void 0;
|
|
4
|
+
const errors_1 = require("../errors");
|
|
5
|
+
function prepareRoutes(customRoutes) {
|
|
6
|
+
const routes = {};
|
|
7
|
+
validateCustomRoutes(customRoutes);
|
|
8
|
+
customRoutes.forEach((r) => {
|
|
9
|
+
const methodObj = Array.isArray(r.method) ?
|
|
10
|
+
r.method.reduce((o, key) => ({ ...o, [key.toUpperCase()]: r.handler }), {}) :
|
|
11
|
+
{ [r.method.toUpperCase()]: r.handler };
|
|
12
|
+
routes[r.path] = routes[r.path] ? { ...routes[r.path], ...methodObj } : methodObj;
|
|
13
|
+
});
|
|
14
|
+
return routes;
|
|
15
|
+
}
|
|
16
|
+
exports.prepareRoutes = prepareRoutes;
|
|
17
|
+
function validateCustomRoutes(customRoutes) {
|
|
18
|
+
const requiredKeys = ['path', 'method', 'handler'];
|
|
19
|
+
const missingKeys = [];
|
|
20
|
+
// Check for missing required keys
|
|
21
|
+
customRoutes.forEach((route) => {
|
|
22
|
+
requiredKeys.forEach((key) => {
|
|
23
|
+
if (route[key] === undefined && !missingKeys.includes(key)) {
|
|
24
|
+
missingKeys.push(key);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
if (missingKeys.length > 0) {
|
|
29
|
+
const errorMsg = `One or more routes in customRoutes are missing required keys: ${missingKeys.join(', ')}`;
|
|
30
|
+
throw new errors_1.CustomRouteInitializationError(errorMsg);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=custom-routes.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingMessage } from 'http';
|
|
3
|
+
export declare function extractRetryNum(req: IncomingMessage): number | undefined;
|
|
4
|
+
export declare function extractRetryReason(req: IncomingMessage): string | undefined;
|
|
5
|
+
//# sourceMappingURL=http-utils.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractRetryReason = exports.extractRetryNum = void 0;
|
|
4
|
+
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;
|
|
17
|
+
}
|
|
18
|
+
exports.extractRetryNum = extractRetryNum;
|
|
19
|
+
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;
|
|
33
|
+
}
|
|
34
|
+
exports.extractRetryReason = extractRetryReason;
|
|
35
|
+
//# sourceMappingURL=http-utils.js.map
|
|
@@ -0,0 +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 +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,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,
|
|
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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.renderHtmlForInstallPath = void 0;
|
|
4
|
-
function
|
|
4
|
+
function defaultRenderHtmlForInstallPath(addToSlackUrl) {
|
|
5
5
|
return `<html>
|
|
6
6
|
<body>
|
|
7
7
|
<a href=${addToSlackUrl}>
|
|
@@ -16,5 +16,10 @@ function renderHtmlForInstallPath(addToSlackUrl) {
|
|
|
16
16
|
</body>
|
|
17
17
|
</html>`;
|
|
18
18
|
}
|
|
19
|
+
exports.default = defaultRenderHtmlForInstallPath;
|
|
20
|
+
// For backward-compatibility
|
|
21
|
+
function renderHtmlForInstallPath(addToSlackUrl) {
|
|
22
|
+
return defaultRenderHtmlForInstallPath(addToSlackUrl);
|
|
23
|
+
}
|
|
19
24
|
exports.renderHtmlForInstallPath = renderHtmlForInstallPath;
|
|
20
25
|
//# sourceMappingURL=render-html-for-install-path.js.map
|
|
@@ -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,
|
|
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;;kBAES,aAAa;;;;;;;;;;YAUnB,CAAC;AACb,CAAC;AAdD,kDAcC;AAED,6BAA6B;AAC7B,SAAgB,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,+BAA+B,CAAC,aAAa,CAAC,CAAC;AACxD,CAAC;AAFD,4DAEC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTTPReceiverOptions, HTTPReceiverInstallerOptions } from './HTTPReceiver';
|
|
2
|
+
export interface RedirectOptions {
|
|
3
|
+
redirectUri?: HTTPReceiverOptions['redirectUri'];
|
|
4
|
+
redirectUriPath?: HTTPReceiverInstallerOptions['redirectUriPath'];
|
|
5
|
+
}
|
|
6
|
+
export declare function verifyRedirectOpts({ redirectUri, redirectUriPath }: RedirectOptions): void;
|
|
7
|
+
//# sourceMappingURL=verify-redirect-opts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-redirect-opts.d.ts","sourceRoot":"","sources":["../../src/receivers/verify-redirect-opts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,eAAe,GAAG,IAAI,CAgB1F"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyRedirectOpts = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Helper to verify redirect uri and redirect uri path exist and are consistent
|
|
6
|
+
* when supplied.
|
|
7
|
+
*/
|
|
8
|
+
const errors_1 = require("../errors");
|
|
9
|
+
function verifyRedirectOpts({ redirectUri, redirectUriPath }) {
|
|
10
|
+
// if redirectUri is supplied, redirectUriPath is required
|
|
11
|
+
if ((redirectUri && !redirectUriPath)) {
|
|
12
|
+
throw new errors_1.AppInitializationError(' You have set a redirectUri but not a matching redirectUriPath.' +
|
|
13
|
+
' Please provide this via installerOptions.redirectUriPath' +
|
|
14
|
+
' Note: These should be consistent, e.g. https://example.com/redirect and /redirect');
|
|
15
|
+
}
|
|
16
|
+
// if both redirectUri and redirectUri are supplied, they must be consistent
|
|
17
|
+
if (redirectUri && redirectUriPath && !(redirectUri === null || redirectUri === void 0 ? void 0 : redirectUri.endsWith(redirectUriPath))) {
|
|
18
|
+
throw new errors_1.AppInitializationError('redirectUri and installerOptions.redirectUriPath should be consistent' +
|
|
19
|
+
' e.g. https://example.com/redirect and /redirect');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.verifyRedirectOpts = verifyRedirectOpts;
|
|
23
|
+
//# sourceMappingURL=verify-redirect-opts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-redirect-opts.js","sourceRoot":"","sources":["../../src/receivers/verify-redirect-opts.ts"],"names":[],"mappings":";;;AAAA;;;EAGE;AACF,sCAAmD;AAQnD,SAAgB,kBAAkB,CAAC,EAAE,WAAW,EAAE,eAAe,EAAmB;IAClF,0DAA0D;IAC1D,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,CAAC,EAAE;QACrC,MAAM,IAAI,+BAAsB,CAC9B,iEAAiE;YACjE,2DAA2D;YAC3D,oFAAoF,CACrF,CAAC;KACH;IACD,4EAA4E;IAC5E,IAAI,WAAW,IAAI,eAAe,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,eAAe,CAAC,CAAA,EAAE;QAC7E,MAAM,IAAI,+BAAsB,CAC9B,uEAAuE;YACvE,kDAAkD,CACnD,CAAC;KACH;AACH,CAAC;AAhBD,gDAgBC"}
|
|
@@ -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;
|
|
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"}
|
|
@@ -17,6 +17,7 @@ exports.verify = void 0;
|
|
|
17
17
|
const crypto_1 = require("crypto");
|
|
18
18
|
const raw_body_1 = __importDefault(require("raw-body"));
|
|
19
19
|
const tsscmp_1 = __importDefault(require("tsscmp"));
|
|
20
|
+
const verifyErrorPrefix = 'Failed to verify authenticity';
|
|
20
21
|
/**
|
|
21
22
|
* Verify the authenticity of an incoming HTTP request from Slack and buffer the HTTP body.
|
|
22
23
|
*
|
|
@@ -39,6 +40,10 @@ async function verify(options, req, _res) {
|
|
|
39
40
|
const { signingSecret } = options;
|
|
40
41
|
// Consume the readable stream (or use the previously consumed readable stream)
|
|
41
42
|
const bufferedReq = await bufferIncomingMessage(req);
|
|
43
|
+
if (options.enabled !== undefined && !options.enabled) {
|
|
44
|
+
// As the validation is disabled, immediately return the bufferred reuest
|
|
45
|
+
return bufferedReq;
|
|
46
|
+
}
|
|
42
47
|
// Find the relevant request headers
|
|
43
48
|
const signature = getHeader(req, 'x-slack-signature');
|
|
44
49
|
const requestTimestampSec = Number(getHeader(req, 'x-slack-request-timestamp'));
|
|
@@ -62,10 +67,10 @@ async function verify(options, req, _res) {
|
|
|
62
67
|
throw new Error(`${verifyErrorPrefix}: unknown signature version`);
|
|
63
68
|
}
|
|
64
69
|
// Compute our own signature hash
|
|
65
|
-
const hmac = crypto_1.createHmac('sha256', signingSecret);
|
|
70
|
+
const hmac = (0, crypto_1.createHmac)('sha256', signingSecret);
|
|
66
71
|
hmac.update(`${signatureVersion}:${requestTimestampSec}:${bufferedReq.rawBody.toString()}`);
|
|
67
72
|
const ourSignatureHash = hmac.digest('hex');
|
|
68
|
-
if (!tsscmp_1.default(signatureHash, ourSignatureHash)) {
|
|
73
|
+
if (!(0, tsscmp_1.default)(signatureHash, ourSignatureHash)) {
|
|
69
74
|
throw new Error(`${verifyErrorPrefix}: signature mismatch`);
|
|
70
75
|
}
|
|
71
76
|
// Checks have passed! Return the value that has a side effect (the buffered request)
|
|
@@ -77,7 +82,7 @@ async function bufferIncomingMessage(req) {
|
|
|
77
82
|
return req;
|
|
78
83
|
}
|
|
79
84
|
const bufferedRequest = req;
|
|
80
|
-
bufferedRequest.rawBody = await raw_body_1.default(req);
|
|
85
|
+
bufferedRequest.rawBody = await (0, raw_body_1.default)(req);
|
|
81
86
|
return bufferedRequest;
|
|
82
87
|
}
|
|
83
88
|
function isBufferedIncomingMessage(req) {
|
|
@@ -90,5 +95,4 @@ function getHeader(req, header) {
|
|
|
90
95
|
}
|
|
91
96
|
return value;
|
|
92
97
|
}
|
|
93
|
-
const verifyErrorPrefix = 'Failed to verify authenticity';
|
|
94
98
|
//# sourceMappingURL=verify-request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-request.js","sourceRoot":"","sources":["../../src/receivers/verify-request.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAEH,mCAAoC;AACpC,wDAA+B;AAC/B,oDAA4B;
|
|
1
|
+
{"version":3,"file":"verify-request.js","sourceRoot":"","sources":["../../src/receivers/verify-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PlainTextElement, Confirmation, Option } from '@slack/types';
|
|
2
2
|
import { StringIndexed } from '../helpers';
|
|
3
|
-
import { ViewOutput } from '../view';
|
|
3
|
+
import { ViewOutput, ViewStateValue } from '../view';
|
|
4
4
|
/**
|
|
5
5
|
* All known actions from in Slack's interactive elements
|
|
6
6
|
*
|
|
@@ -198,6 +198,13 @@ export interface BlockAction<ElementAction extends BasicElementAction = BlockEle
|
|
|
198
198
|
[key: string]: any;
|
|
199
199
|
};
|
|
200
200
|
view?: ViewOutput;
|
|
201
|
+
state?: {
|
|
202
|
+
values: {
|
|
203
|
+
[blockId: string]: {
|
|
204
|
+
[actionId: string]: ViewStateValue;
|
|
205
|
+
};
|
|
206
|
+
};
|
|
207
|
+
};
|
|
201
208
|
token: string;
|
|
202
209
|
response_url: string;
|
|
203
210
|
trigger_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-action.d.ts","sourceRoot":"","sources":["../../../src/types/actions/block-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"block-action.d.ts","sourceRoot":"","sources":["../../../src/types/actions/block-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * from './block-action';
|
|
2
|
-
export * from './interactive-message';
|
|
3
|
-
export * from './dialog-action';
|
|
4
|
-
export * from './workflow-step-edit';
|
|
5
1
|
import { BlockAction } from './block-action';
|
|
6
2
|
import { InteractiveMessage } from './interactive-message';
|
|
7
3
|
import { WorkflowStepEdit } from './workflow-step-edit';
|
|
8
4
|
import { DialogSubmitAction, DialogValidation } from './dialog-action';
|
|
9
5
|
import { SayFn, SayArguments, RespondFn, AckFn } from '../utilities';
|
|
6
|
+
export * from './block-action';
|
|
7
|
+
export * from './interactive-message';
|
|
8
|
+
export * from './dialog-action';
|
|
9
|
+
export * from './workflow-step-edit';
|
|
10
10
|
/**
|
|
11
11
|
* All known actions from Slack's Block Kit interactive components, message actions, dialogs, and legacy interactive
|
|
12
12
|
* messages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/actions/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,oBAAY,WAAW,GAAG,WAAW,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAEnG;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACjF,OAAO,EAAE,MAAM,SAAS,WAAW,CAAC,MAAM,aAAa,CAAC,GACpD,aAAa,GACb,MAAM,SAAS,kBAAkB,CAAC,MAAM,iBAAiB,CAAC,GACxD,iBAAiB,GACjB,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,MAAM,SAAS,OAAO,CAAC,WAAW,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;IAChG,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;GAGG;AACH,aAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,kBAAkB,GAClE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,GAC5B,CAAC,SAAS,kBAAkB,GAC1B,KAAK,CAAC,gBAAgB,CAAC,GACvB,KAAK,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,iDAA+B;AAC/B,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-step-edit.d.ts","sourceRoot":"","sources":["../../../src/types/actions/workflow-step-edit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,CAAC,GAAG,EAAE,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"workflow-step-edit.d.ts","sourceRoot":"","sources":["../../../src/types/actions/workflow-step-edit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,CAAC,GAAG,EAAE,MAAM,GAAG;gBAEb,KAAK,EAAE,GAAG,CAAC;aACZ,CAAC;SACH,CAAC;QACF,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,EAAE,CAAC;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAGF,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
|