@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
@@ -2,12 +2,13 @@
2
2
  import { Server, ServerOptions } from 'http';
3
3
  import { Server as HTTPSServer, ServerOptions as HTTPSServerOptions } from 'https';
4
4
  import { ListenOptions } from 'net';
5
- import { Request, Application, RequestHandler, IRouter } from 'express';
5
+ import { Request, Response, Application, RequestHandler, IRouter } from 'express';
6
6
  import { Logger, LogLevel } from '@slack/logger';
7
- import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions } from '@slack/oauth';
7
+ import { InstallProvider, CallbackOptions, InstallProviderOptions, InstallURLOptions, InstallPathOptions } from '@slack/oauth';
8
8
  import App from '../App';
9
9
  import { AnyMiddlewareArgs, Receiver } from '../types';
10
10
  import { StringIndexed } from '../types/helpers';
11
+ import { ReceiverDispatchErrorHandlerArgs, ReceiverProcessEventErrorHandlerArgs, ReceiverUnhandledRequestHandlerArgs } from './HTTPModuleFunctions';
11
12
  export declare const respondToSslCheck: RequestHandler;
12
13
  export declare const respondToUrlVerification: RequestHandler;
13
14
  export interface ExpressReceiverOptions {
@@ -29,16 +30,24 @@ export interface ExpressReceiverOptions {
29
30
  app?: Application;
30
31
  router?: IRouter;
31
32
  customPropertiesExtractor?: (request: Request) => StringIndexed;
33
+ dispatchErrorHandler?: (args: ReceiverDispatchErrorHandlerArgs) => Promise<void>;
34
+ processEventErrorHandler?: (args: ReceiverProcessEventErrorHandlerArgs) => Promise<boolean>;
35
+ unhandledRequestHandler?: (args: ReceiverUnhandledRequestHandlerArgs) => void;
36
+ unhandledRequestTimeoutMillis?: number;
32
37
  }
33
38
  interface InstallerOptions {
34
39
  stateStore?: InstallProviderOptions['stateStore'];
35
40
  stateVerification?: InstallProviderOptions['stateVerification'];
41
+ legacyStateVerification?: InstallProviderOptions['legacyStateVerification'];
42
+ stateCookieName?: InstallProviderOptions['stateCookieName'];
43
+ stateCookieExpirationSeconds?: InstallProviderOptions['stateCookieExpirationSeconds'];
36
44
  authVersion?: InstallProviderOptions['authVersion'];
37
45
  metadata?: InstallURLOptions['metadata'];
38
46
  installPath?: string;
39
- directInstall?: boolean;
40
- renderHtmlForInstallPath?: (url: string) => string;
47
+ directInstall?: InstallProviderOptions['directInstall'];
48
+ renderHtmlForInstallPath?: InstallProviderOptions['renderHtmlForInstallPath'];
41
49
  redirectUriPath?: string;
50
+ installPathOptions?: InstallPathOptions;
42
51
  callbackOptions?: CallbackOptions;
43
52
  userScopes?: InstallURLOptions['userScopes'];
44
53
  clientOptions?: InstallProviderOptions['clientOptions'];
@@ -58,8 +67,12 @@ export default class ExpressReceiver implements Receiver {
58
67
  installer: InstallProvider | undefined;
59
68
  installerOptions?: InstallerOptions;
60
69
  private customPropertiesExtractor;
61
- constructor({ signingSecret, logger, logLevel, endpoints, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, app, router, customPropertiesExtractor, }: ExpressReceiverOptions);
62
- private requestHandler;
70
+ private dispatchErrorHandler;
71
+ private processEventErrorHandler;
72
+ private unhandledRequestHandler;
73
+ private unhandledRequestTimeoutMillis;
74
+ constructor({ signingSecret, logger, logLevel, endpoints, processBeforeResponse, signatureVerification, clientId, clientSecret, stateSecret, redirectUri, installationStore, scopes, installerOptions, app, router, customPropertiesExtractor, dispatchErrorHandler, processEventErrorHandler, unhandledRequestHandler, unhandledRequestTimeoutMillis, }: ExpressReceiverOptions);
75
+ requestHandler(req: Request, res: Response): Promise<void>;
63
76
  init(bolt: App): void;
64
77
  start(port: number): Promise<Server>;
65
78
  start(portOrListenOptions: number | ListenOptions, serverOptions?: ServerOptions): Promise<Server>;
@@ -73,5 +86,6 @@ export declare function verifySignatureAndParseRawBody(logger: Logger, signingSe
73
86
  * - Parse request.body and assign the successfully parsed object to it.
74
87
  */
75
88
  export declare function verifySignatureAndParseBody(signingSecret: string, body: string, headers: Record<string, any>): AnyMiddlewareArgs['body'];
89
+ export declare function buildBodyParserMiddleware(logger: Logger): RequestHandler;
76
90
  export {};
77
91
  //# sourceMappingURL=ExpressReceiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.verifySignatureAndParseBody = exports.verifySignatureAndParseRawBody = exports.respondToUrlVerification = exports.respondToSslCheck = void 0;
25
+ exports.buildBodyParserMiddleware = exports.verifySignatureAndParseBody = exports.verifySignatureAndParseRawBody = exports.respondToUrlVerification = exports.respondToSslCheck = void 0;
26
26
  /* eslint-disable @typescript-eslint/no-explicit-any */
27
27
  const http_1 = require("http");
28
28
  const https_1 = require("https");
@@ -34,9 +34,9 @@ const tsscmp_1 = __importDefault(require("tsscmp"));
34
34
  const logger_1 = require("@slack/logger");
35
35
  const oauth_1 = require("@slack/oauth");
36
36
  const errors_1 = require("../errors");
37
- const render_html_for_install_path_1 = __importDefault(require("./render-html-for-install-path"));
38
37
  const verify_redirect_opts_1 = require("./verify-redirect-opts");
39
- const http_utils_1 = require("./http-utils");
38
+ const HTTPModuleFunctions_1 = require("./HTTPModuleFunctions");
39
+ const HTTPResponseAck_1 = require("./HTTPResponseAck");
40
40
  // Option keys for tls.createServer() and tls.createSecureContext(), exclusive of those for http.createServer()
41
41
  const httpsOptionKeys = [
42
42
  'ALPNProtocols',
@@ -91,7 +91,7 @@ exports.respondToUrlVerification = respondToUrlVerification;
91
91
  * Receives HTTP requests with Events, Slash Commands, and Actions
92
92
  */
93
93
  class ExpressReceiver {
94
- constructor({ signingSecret = '', logger = undefined, logLevel = logger_1.LogLevel.INFO, endpoints = { events: '/slack/events' }, processBeforeResponse = false, signatureVerification = true, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, app = undefined, router = undefined, customPropertiesExtractor = (_req) => ({}), }) {
94
+ constructor({ signingSecret = '', logger = undefined, logLevel = logger_1.LogLevel.INFO, endpoints = { events: '/slack/events' }, processBeforeResponse = false, signatureVerification = true, clientId = undefined, clientSecret = undefined, stateSecret = undefined, redirectUri = undefined, installationStore = undefined, scopes = undefined, installerOptions = {}, app = undefined, router = undefined, customPropertiesExtractor = (_req) => ({}), dispatchErrorHandler = HTTPModuleFunctions_1.HTTPModuleFunctions.defaultAsyncDispatchErrorHandler, processEventErrorHandler = HTTPModuleFunctions_1.HTTPModuleFunctions.defaultProcessEventErrorHandler, unhandledRequestHandler = HTTPModuleFunctions_1.HTTPModuleFunctions.defaultUnhandledRequestHandler, unhandledRequestTimeoutMillis = 3001, }) {
95
95
  var _a;
96
96
  this.installer = undefined;
97
97
  this.app = app !== undefined ? app : (0, express_1.default)();
@@ -119,6 +119,10 @@ class ExpressReceiver {
119
119
  this.router.post(endpoint, ...expressMiddleware);
120
120
  });
121
121
  this.customPropertiesExtractor = customPropertiesExtractor;
122
+ this.dispatchErrorHandler = dispatchErrorHandler;
123
+ this.processEventErrorHandler = processEventErrorHandler;
124
+ this.unhandledRequestHandler = unhandledRequestHandler;
125
+ this.unhandledRequestTimeoutMillis = unhandledRequestTimeoutMillis;
122
126
  // Verify redirect options if supplied, throws coded error if invalid
123
127
  (0, verify_redirect_opts_1.verifyRedirectOpts)({ redirectUri, redirectUriPath: installerOptions.redirectUriPath });
124
128
  if (clientId !== undefined &&
@@ -134,8 +138,13 @@ class ExpressReceiver {
134
138
  installationStore,
135
139
  logLevel,
136
140
  logger,
141
+ directInstall: installerOptions.directInstall,
137
142
  stateStore: installerOptions.stateStore,
138
143
  stateVerification: installerOptions.stateVerification,
144
+ legacyStateVerification: installerOptions.legacyStateVerification,
145
+ stateCookieName: installerOptions.stateCookieName,
146
+ stateCookieExpirationSeconds: installerOptions.stateCookieExpirationSeconds,
147
+ renderHtmlForInstallPath: installerOptions.renderHtmlForInstallPath,
139
148
  authVersion: (_a = installerOptions.authVersion) !== null && _a !== void 0 ? _a : 'v2',
140
149
  clientOptions: installerOptions.clientOptions,
141
150
  authorizationUrl: installerOptions.authorizationUrl,
@@ -150,43 +159,49 @@ class ExpressReceiver {
150
159
  };
151
160
  // Add OAuth routes to receiver
152
161
  if (this.installer !== undefined) {
162
+ const { installer } = this;
153
163
  const redirectUriPath = installerOptions.redirectUriPath === undefined ?
154
164
  '/slack/oauth_redirect' :
155
165
  installerOptions.redirectUriPath;
156
166
  const { callbackOptions, stateVerification } = installerOptions;
157
167
  this.router.use(redirectUriPath, async (req, res) => {
158
- if (stateVerification === false) {
159
- // when stateVerification is disabled pass install options directly to handler
160
- // since they won't be encoded in the state param of the generated url
161
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
162
- await this.installer.handleCallback(req, res, callbackOptions, installUrlOptions);
168
+ try {
169
+ if (stateVerification === false) {
170
+ // when stateVerification is disabled pass install options directly to handler
171
+ // since they won't be encoded in the state param of the generated url
172
+ await installer.handleCallback(req, res, callbackOptions, installUrlOptions);
173
+ }
174
+ else {
175
+ await installer.handleCallback(req, res, callbackOptions);
176
+ }
163
177
  }
164
- else {
165
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
166
- await this.installer.handleCallback(req, res, callbackOptions);
178
+ catch (e) {
179
+ await this.dispatchErrorHandler({
180
+ error: e,
181
+ logger: this.logger,
182
+ request: req,
183
+ response: res,
184
+ });
167
185
  }
168
186
  });
169
187
  const installPath = installerOptions.installPath === undefined ? '/slack/install' : installerOptions.installPath;
170
- this.router.get(installPath, async (_req, res, next) => {
188
+ const { installPathOptions } = installerOptions;
189
+ this.router.get(installPath, async (req, res, next) => {
171
190
  try {
172
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
173
- const url = await this.installer.generateInstallUrl(installUrlOptions, stateVerification);
174
- if (installerOptions.directInstall) {
175
- // If a Slack app sets "Direct Install URL" in the Slack app configuration,
176
- // the installation flow of the app should start with the Slack authorize URL.
177
- // See https://api.slack.com/start/distributing/directory#direct_install for more details.
178
- res.redirect(url);
191
+ try {
192
+ await installer.handleInstallPath(req, res, installPathOptions, installUrlOptions);
179
193
  }
180
- else {
181
- // The installation starts from a landing page served by this app.
182
- const renderHtml = installerOptions.renderHtmlForInstallPath !== undefined ?
183
- installerOptions.renderHtmlForInstallPath :
184
- render_html_for_install_path_1.default;
185
- res.send(renderHtml(url));
194
+ catch (error) {
195
+ next(error);
186
196
  }
187
197
  }
188
- catch (error) {
189
- next(error);
198
+ catch (e) {
199
+ await this.dispatchErrorHandler({
200
+ error: e,
201
+ logger: this.logger,
202
+ request: req,
203
+ response: res,
204
+ });
190
205
  }
191
206
  });
192
207
  }
@@ -194,73 +209,41 @@ class ExpressReceiver {
194
209
  }
195
210
  async requestHandler(req, res) {
196
211
  var _a;
197
- let isAcknowledged = false;
198
- setTimeout(() => {
199
- if (!isAcknowledged) {
200
- this.logger.error('An incoming event was not acknowledged within 3 seconds. Ensure that the ack() argument is called in a listener.');
201
- }
202
- }, 3001);
203
- let storedResponse;
212
+ const ack = new HTTPResponseAck_1.HTTPResponseAck({
213
+ logger: this.logger,
214
+ processBeforeResponse: this.processBeforeResponse,
215
+ unhandledRequestHandler: this.unhandledRequestHandler,
216
+ unhandledRequestTimeoutMillis: this.unhandledRequestTimeoutMillis,
217
+ httpRequest: req,
218
+ httpResponse: res,
219
+ });
204
220
  const event = {
205
221
  body: req.body,
206
- ack: async (response) => {
207
- this.logger.debug('ack() begin');
208
- if (isAcknowledged) {
209
- throw new errors_1.ReceiverMultipleAckError();
210
- }
211
- isAcknowledged = true;
212
- if (this.processBeforeResponse) {
213
- if (!response) {
214
- storedResponse = '';
215
- }
216
- else {
217
- storedResponse = response;
218
- }
219
- this.logger.debug('ack() response stored');
220
- }
221
- else {
222
- if (!response) {
223
- res.send('');
224
- }
225
- else if (typeof response === 'string') {
226
- res.send(response);
227
- }
228
- else {
229
- res.json(response);
230
- }
231
- this.logger.debug('ack() response sent');
232
- }
233
- },
234
- retryNum: (0, http_utils_1.extractRetryNum)(req),
235
- retryReason: (0, http_utils_1.extractRetryReason)(req),
222
+ ack: ack.bind(),
223
+ retryNum: HTTPModuleFunctions_1.HTTPModuleFunctions.extractRetryNumFromHTTPRequest(req),
224
+ retryReason: HTTPModuleFunctions_1.HTTPModuleFunctions.extractRetryReasonFromHTTPRequest(req),
236
225
  customProperties: this.customPropertiesExtractor(req),
237
226
  };
238
227
  try {
239
228
  await ((_a = this.bolt) === null || _a === void 0 ? void 0 : _a.processEvent(event));
240
- if (storedResponse !== undefined) {
241
- if (typeof storedResponse === 'string') {
242
- res.send(storedResponse);
243
- }
244
- else {
245
- res.json(storedResponse);
246
- }
229
+ if (ack.storedResponse !== undefined) {
230
+ HTTPModuleFunctions_1.HTTPModuleFunctions.buildContentResponse(res, ack.storedResponse);
247
231
  this.logger.debug('stored response sent');
248
232
  }
249
233
  }
250
234
  catch (err) {
251
- const e = err;
252
- if ('code' in e) {
253
- // CodedError has code: string
254
- const errorCode = err.code;
255
- if (errorCode === errors_1.ErrorCode.AuthorizationError) {
256
- // authorize function threw an exception, which means there is no valid installation data
257
- res.status(401).send();
258
- isAcknowledged = true;
259
- return;
260
- }
235
+ const acknowledgedByHandler = await this.processEventErrorHandler({
236
+ error: err,
237
+ logger: this.logger,
238
+ request: req,
239
+ response: res,
240
+ storedResponse: ack.storedResponse,
241
+ });
242
+ if (acknowledgedByHandler) {
243
+ // If the value is false, we don't touch the value as a race condition
244
+ // with ack() call may occur especially when processBeforeResponse: false
245
+ ack.ack();
261
246
  }
262
- res.status(500).send();
263
- throw err;
264
247
  }
265
248
  }
266
249
  init(bolt) {
@@ -432,6 +415,7 @@ function buildBodyParserMiddleware(logger) {
432
415
  return next();
433
416
  };
434
417
  }
418
+ exports.buildBodyParserMiddleware = buildBodyParserMiddleware;
435
419
  function parseRequestBody(stringBody, contentType) {
436
420
  if (contentType === 'application/x-www-form-urlencoded') {
437
421
  const parsedBody = querystring_1.default.parse(stringBody);
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressReceiver.js","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,+BAA2D;AAC3D,iCAAsH;AAEtH,mDAAmG;AACnG,wDAA+B;AAC/B,8DAAsC;AACtC,oDAA4B;AAC5B,oDAA4B;AAC5B,0CAAgE;AAChE,wCAA2G;AAE3G,sCAMmB;AAEnB,kGAA6E;AAC7E,iEAA4D;AAE5D,6CAAmE;AAEnE,+GAA+G;AAC/G,MAAM,eAAe,GAAG;IACtB,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,IAAI;IACJ,MAAM;IACN,SAAS;IACT,SAAS;IACT,kBAAkB;IAClB,KAAK;IACL,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,KAAK;IACL,kBAAkB;IAClB,sBAAsB;IACtB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,eAAe;IACf,gBAAgB;IAChB,kBAAkB;CACnB,CAAC;AAEF,MAAM,6BAA6B,GAAG,0GAA0G,CAAC;AAE1I,MAAM,iBAAiB,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;QAClC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO;KACR;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,wBAAwB,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACzE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;QACrE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO;KACR;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC;AA2CF;;GAEG;AACH,MAAqB,eAAe;IAsBlC,YAAmB,EACjB,aAAa,GAAG,EAAE,EAClB,MAAM,GAAG,SAAS,EAClB,QAAQ,GAAG,iBAAQ,CAAC,IAAI,EACxB,SAAS,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,EACvC,qBAAqB,GAAG,KAAK,EAC7B,qBAAqB,GAAG,IAAI,EAC5B,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,GAAG,GAAG,SAAS,EACf,MAAM,GAAG,SAAS,EAClB,yBAAyB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GACnB;;QAvBlB,cAAS,GAAgC,SAAS,CAAC;QAwBxD,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAO,GAAE,CAAC;QAE/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7C,qCAAqC,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;YACnE,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAqB;YAC1C,UAAU;YACV,yBAAiB;YACjB,gCAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAEnD,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,gBAAM,GAAE,CAAC;QACvD,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAE3D,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;QACD,6BAA6B;QAC7B,MAAM,iBAAiB,GAAG;YACxB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE;YACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW;SACZ,CAAC;QACF,+BAA+B;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;gBACtE,uBAAuB,CAAC,CAAC;gBACzB,gBAAgB,CAAC,eAAe,CAAC;YACnC,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,IAAI,iBAAiB,KAAK,KAAK,EAAE;oBAC/B,8EAA8E;oBAC9E,sEAAsE;oBACtE,oEAAoE;oBACpE,MAAM,IAAI,CAAC,SAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;iBACpF;qBAAM;oBACL,oEAAoE;oBACpE,MAAM,IAAI,CAAC,SAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;iBACjE;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACjH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACrD,IAAI;oBACF,oEAAoE;oBACpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;oBAC3F,IAAI,gBAAgB,CAAC,aAAa,EAAE;wBAClC,2EAA2E;wBAC3E,8EAA8E;wBAC9E,0FAA0F;wBAC1F,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACnB;yBAAM;wBACL,kEAAkE;wBAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC;4BAC1E,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;4BAC3C,sCAA+B,CAAC;wBAClC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC3B;iBACF;gBAAC,OAAO,KAAK,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAY,EAAE,GAAa;;QACtD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kHAAkH,CACnH,CAAC;aACH;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,cAAc,CAAC;QACnB,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAiB,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACjC,IAAI,cAAc,EAAE;oBAClB,MAAM,IAAI,iCAAwB,EAAE,CAAC;iBACtC;gBACD,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAI,IAAI,CAAC,qBAAqB,EAAE;oBAC9B,IAAI,CAAC,QAAQ,EAAE;wBACb,cAAc,GAAG,EAAE,CAAC;qBACrB;yBAAM;wBACL,cAAc,GAAG,QAAQ,CAAC;qBAC3B;oBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBAC5C;qBAAM;oBACL,IAAI,CAAC,QAAQ,EAAE;wBACb,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACd;yBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;wBACvC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpB;yBAAM;wBACL,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpB;oBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;iBAC1C;YACH,CAAC;YACD,QAAQ,EAAE,IAAA,4BAAe,EAAC,GAAG,CAAC;YAC9B,WAAW,EAAE,IAAA,+BAAkB,EAAC,GAAG,CAAC;YACpC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC;SACtD,CAAC;QAEF,IAAI;YACF,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,CAAC,KAAK,CAAC,CAAA,CAAC;YACrC,IAAI,cAAc,KAAK,SAAS,EAAE;gBAChC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;oBACtC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC1B;qBAAM;oBACL,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC1B;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;aAC3C;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,GAAU,CAAC;YACrB,IAAI,MAAM,IAAI,CAAC,EAAE;gBACf,8BAA8B;gBAC9B,MAAM,SAAS,GAAI,GAAkB,CAAC,IAAI,CAAC;gBAC3C,IAAI,SAAS,KAAK,kBAAS,CAAC,kBAAkB,EAAE;oBAC9C,yFAAyF;oBACzF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvB,cAAc,GAAG,IAAI,CAAC;oBACtB,OAAO;iBACR;aACF;YACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAEM,IAAI,CAAC,IAAS;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IASM,KAAK,CACV,mBAA2C,EAC3C,gBAAoD,EAAE;QAEtD,IAAI,cAAc,GAAmD,mBAAY,CAAC;QAElF,mFAAmF;QACnF,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACpF,cAAc,GAAG,oBAAiB,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,uCAA8B,CAAC,gEAAgE,CAAC,CACrG,CAAC;SACH;QAED,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,uCAA8B,CAAC,6BAA6B,CAAC,CAAC;aACzE;YAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC7B,MAAM,IAAI,uCAA8B,CAAC,6BAA6B,CAAC,CAAC;iBACzE;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAEpB,2GAA2G;gBAC3G,4GAA4G;gBAC5G,6GAA6G;gBAC7G,cAAc;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3B,4GAA4G;gBAC5G,4GAA4G;gBAC5G,iBAAiB;gBACjB,qCAAqC;gBACrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC7B,OAAO,MAAM,CAAC,IAAI,uCAA8B,CAAC,6BAA6B,CAAC,CAAC,CAAC;iBAClF;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+GAA+G;IAC/G,gBAAgB;IACT,IAAI;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,uCAA8B,CAAC,4DAA4D,CAAC,CAAC,CAAC;SACzH;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACrC,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;iBACtB;gBAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzSD,kCAySC;AAED,SAAgB,8BAA8B,CAC5C,MAAc,EACd,aAAmD;IAEnD,OAAO,qCAAqC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AALD,wEAKC;AAED;;;;GAIG;AACH,SAAS,qCAAqC,CAC5C,MAAc,EACd,aAAmD;IAEnD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,UAAkB,CAAC;QACvB,yDAAyD;QACzD,+DAA+D;QAC/D,MAAM,gBAAgB,GAAS,GAAW,CAAC,OAAO,CAAC;QACnD,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;SAC1C;aAAM;YACL,UAAU,GAAG,CAAC,MAAM,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9C;QAED,uBAAuB;QACvB,oFAAoF;QACpF,uEAAuE;QAEvE,IAAI;YACF,4EAA4E;YAC5E,uDAAuD;YACvD,GAAG,CAAC,IAAI,GAAG,2BAA2B,CACpC,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,aAAa,EAAE,EACzE,UAAU,EACV,GAAG,CAAC,OAAO,CACZ,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,YAAY,kCAAyB,EAAE;oBAC9C,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;oBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC/B;gBAED,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/B;SACF;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,OAAe,EAAE,KAAU;IAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC;QAClC,GAAG,OAAO,WAAW,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/D,GAAG,OAAO,YAAY,KAAK,GAAG,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB,CAC7B,aAAqB,EACrB,IAAY,EACZ,SAA6B,EAC7B,gBAAoC;IAEpC,IAAI,SAAS,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAC7D,MAAM,IAAI,kCAAyB,CAAC,sEAAsE,CAAC,CAAC;KAC7G;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpC,iDAAiD;IACjD,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;QACb,MAAM,IAAI,kCAAyB,CAAC,kEAAkE,CAAC,CAAC;KACzG;IAED,+CAA+C;IAC/C,uCAAuC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE9D,IAAI,EAAE,GAAG,cAAc,EAAE;QACvB,MAAM,IAAI,kCAAyB,CAAC,kEAAkE,CAAC,CAAC;KACzG;IAED,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAExC,IAAI,CAAC,IAAA,gBAAM,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;QACrC,MAAM,IAAI,kCAAyB,CAAC,gEAAgE,CAAC,CAAC;KACvG;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B,CACzC,aAAqB,EACrB,IAAY,EACZ,OAA4B;IAE5B,+BAA+B;IAC/B,MAAM,EACJ,mBAAmB,EAAE,SAAS,EAC9B,2BAA2B,EAAE,gBAAgB,EAC7C,cAAc,EAAE,WAAW,GAC5B,GAAG,OAAO,CAAC;IAEZ,sBAAsB,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEzE,OAAO,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AAfD,kEAeC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,UAAkB,CAAC;QACvB,yDAAyD;QACzD,+DAA+D;QAC/D,MAAM,gBAAgB,GAAS,GAAW,CAAC,OAAO,CAAC;QACnD,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;SAC1C;aAAM;YACL,UAAU,GAAG,CAAC,MAAM,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9C;QACD,IAAI;YACF,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;YACpD,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,EAAE;gBACT,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/B;SACF;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,WAA+B;IAC3E,IAAI,WAAW,KAAK,mCAAmC,EAAE;QACvD,MAAM,UAAU,GAAG,qBAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACvC;QAED,OAAO,UAAU,CAAC;KACnB;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"ExpressReceiver.js","sourceRoot":"","sources":["../../src/receivers/ExpressReceiver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /// <reference types="node" />
2
+ import type { Logger } from '@slack/logger';
3
+ import type { IncomingMessage, ServerResponse } from 'http';
4
+ import { CodedError } from '../errors';
5
+ import { BufferedIncomingMessage } from './BufferedIncomingMessage';
6
+ export declare class HTTPModuleFunctions {
7
+ static extractRetryNumFromHTTPRequest(req: IncomingMessage): number | undefined;
8
+ static extractRetryReasonFromHTTPRequest(req: IncomingMessage): string | undefined;
9
+ static parseHTTPRequestBody(req: BufferedIncomingMessage): any;
10
+ static parseAndVerifyHTTPRequest(options: RequestVerificationOptions, req: IncomingMessage, _res?: ServerResponse): Promise<BufferedIncomingMessage>;
11
+ static isBufferedIncomingMessage(req: IncomingMessage): req is BufferedIncomingMessage;
12
+ static getHeader(req: IncomingMessage, header: string): string;
13
+ static bufferIncomingMessage(req: IncomingMessage): Promise<BufferedIncomingMessage>;
14
+ static buildNoBodyResponse(res: ServerResponse, status: number): void;
15
+ static buildUrlVerificationResponse(res: ServerResponse, body: any): void;
16
+ static buildSSLCheckResponse(res: ServerResponse): void;
17
+ static buildContentResponse(res: ServerResponse, body: string | any | undefined): void;
18
+ static defaultDispatchErrorHandler(args: ReceiverDispatchErrorHandlerArgs): void;
19
+ static defaultAsyncDispatchErrorHandler(args: ReceiverDispatchErrorHandlerArgs): Promise<void>;
20
+ static defaultProcessEventErrorHandler(args: ReceiverProcessEventErrorHandlerArgs): Promise<boolean>;
21
+ static defaultUnhandledRequestHandler(args: ReceiverUnhandledRequestHandlerArgs): void;
22
+ }
23
+ export interface RequestVerificationOptions {
24
+ enabled?: boolean;
25
+ signingSecret: string;
26
+ nowMilliseconds?: () => number;
27
+ logger?: Logger;
28
+ }
29
+ export interface ReceiverDispatchErrorHandlerArgs {
30
+ error: Error | CodedError;
31
+ logger: Logger;
32
+ request: IncomingMessage;
33
+ response: ServerResponse;
34
+ }
35
+ export interface ReceiverProcessEventErrorHandlerArgs {
36
+ error: Error | CodedError;
37
+ logger: Logger;
38
+ request: IncomingMessage;
39
+ response: ServerResponse;
40
+ storedResponse: any;
41
+ }
42
+ export interface ReceiverUnhandledRequestHandlerArgs {
43
+ logger: Logger;
44
+ request: IncomingMessage;
45
+ response: ServerResponse;
46
+ }
47
+ //# sourceMappingURL=HTTPModuleFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTTPModuleFunctions.d.ts","sourceRoot":"","sources":["../../src/receivers/HTTPModuleFunctions.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAa,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,qBAAa,mBAAmB;WAKhB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;WAaxE,iCAAiC,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;WAmB3E,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,GAAG,GAAG;WAcjD,yBAAyB,CAC3C,OAAO,EAAE,0BAA0B,EACnC,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,uBAAuB,CAAC;WAsCrB,yBAAyB,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,IAAI,uBAAuB;WAI/E,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;WAQjD,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;WAanF,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;WAK9D,4BAA4B,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;WAKlE,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;WAMhD,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI;WAoB/E,2BAA2B,CAAC,IAAI,EAAE,gCAAgC,GAAG,IAAI;WAgBnE,gCAAgC,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;WAMvF,+BAA+B,CACjD,IAAI,EAAE,oCAAoC,GACzC,OAAO,CAAC,OAAO,CAAC;WAsBL,8BAA8B,CAAC,IAAI,EAAE,mCAAmC,GAAG,IAAI;CAO9F;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAID,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IAEzB,cAAc,EAAE,GAAG,CAAC;CACrB;AAKD,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HTTPModuleFunctions = void 0;
7
+ /* eslint-disable import/prefer-default-export */
8
+ const querystring_1 = require("querystring");
9
+ const raw_body_1 = __importDefault(require("raw-body"));
10
+ const errors_1 = require("../errors");
11
+ const verify_request_1 = require("./verify-request");
12
+ const verifyErrorPrefix = 'Failed to verify authenticity';
13
+ class HTTPModuleFunctions {
14
+ // ------------------------------------------
15
+ // Request header extraction
16
+ // ------------------------------------------
17
+ static extractRetryNumFromHTTPRequest(req) {
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;
30
+ }
31
+ static extractRetryReasonFromHTTPRequest(req) {
32
+ let retryReason;
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 bufferred reuest
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;
94
+ }
95
+ static isBufferedIncomingMessage(req) {
96
+ return Buffer.isBuffer(req.rawBody);
97
+ }
98
+ static 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
+ static async bufferIncomingMessage(req) {
106
+ if (HTTPModuleFunctions.isBufferedIncomingMessage(req)) {
107
+ return req;
108
+ }
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
+ }
119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
+ static buildUrlVerificationResponse(res, body) {
121
+ res.writeHead(200, { 'content-type': 'application/json' });
122
+ res.end(JSON.stringify({ challenge: body.challenge }));
123
+ }
124
+ static buildSSLCheckResponse(res) {
125
+ res.writeHead(200);
126
+ res.end();
127
+ }
128
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
+ static buildContentResponse(res, body) {
130
+ if (!body) {
131
+ res.writeHead(200);
132
+ res.end();
133
+ }
134
+ else if (typeof body === 'string') {
135
+ res.writeHead(200);
136
+ res.end(body);
137
+ }
138
+ else {
139
+ res.writeHead(200, { 'content-type': 'application/json' });
140
+ res.end(JSON.stringify(body));
141
+ }
142
+ }
143
+ // ------------------------------------------
144
+ // Error handlers for event processing
145
+ // ------------------------------------------
146
+ // The default dispathErrorHandler implementation:
147
+ // Developers can customize this behavior by passing dispatchErrorHandler to the constructor
148
+ // Note that it was not possible to make this function async due to the limitation of http module
149
+ static defaultDispatchErrorHandler(args) {
150
+ const { error, logger, request, response } = args;
151
+ if ('code' in error) {
152
+ if (error.code === errors_1.ErrorCode.HTTPReceiverDeferredRequestError) {
153
+ logger.info(`Unhandled HTTP request (${request.method}) made to ${request.url}`);
154
+ response.writeHead(404);
155
+ response.end();
156
+ return;
157
+ }
158
+ }
159
+ logger.error(`An unexpected error occurred during a request (${request.method}) made to ${request.url}`);
160
+ logger.debug(`Error details: ${error}`);
161
+ response.writeHead(500);
162
+ response.end();
163
+ }
164
+ static async defaultAsyncDispatchErrorHandler(args) {
165
+ return HTTPModuleFunctions.defaultDispatchErrorHandler(args);
166
+ }
167
+ // The default processEventErrorHandler implementation:
168
+ // Developers can customize this behavior by passing processEventErrorHandler to the constructor
169
+ static async defaultProcessEventErrorHandler(args) {
170
+ const { error, response, logger, storedResponse } = args;
171
+ if ('code' in error) {
172
+ // CodedError has code: string
173
+ const errorCode = error.code;
174
+ if (errorCode === errors_1.ErrorCode.AuthorizationError) {
175
+ // authorize function threw an exception, which means there is no valid installation data
176
+ response.writeHead(401);
177
+ response.end();
178
+ return true;
179
+ }
180
+ }
181
+ logger.error('An unhandled error occurred while Bolt processed an event');
182
+ logger.debug(`Error details: ${error}, storedResponse: ${storedResponse}`);
183
+ response.writeHead(500);
184
+ response.end();
185
+ return false;
186
+ }
187
+ // The default unhandledRequestHandler implementation:
188
+ // Developers can customize this behavior by passing unhandledRequestHandler to the constructor
189
+ // Note that this method cannot be an async function to align with the implementation using setTimeout
190
+ static defaultUnhandledRequestHandler(args) {
191
+ const { logger } = args;
192
+ logger.error('An incoming event was not acknowledged within 3 seconds. ' +
193
+ 'Ensure that the ack() argument is called in a listener.');
194
+ }
195
+ }
196
+ exports.HTTPModuleFunctions = HTTPModuleFunctions;
197
+ //# sourceMappingURL=HTTPModuleFunctions.js.map