@slack/bolt 4.0.0-rc.1 → 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.
Files changed (140) hide show
  1. package/README.md +22 -16
  2. package/dist/App.d.ts +32 -48
  3. package/dist/App.d.ts.map +1 -1
  4. package/dist/App.js +174 -86
  5. package/dist/App.js.map +1 -1
  6. package/dist/CustomFunction.d.ts +58 -0
  7. package/dist/CustomFunction.d.ts.map +1 -0
  8. package/dist/CustomFunction.js +144 -0
  9. package/dist/CustomFunction.js.map +1 -0
  10. package/dist/WorkflowStep.d.ts +89 -36
  11. package/dist/WorkflowStep.d.ts.map +1 -1
  12. package/dist/WorkflowStep.js +29 -8
  13. package/dist/WorkflowStep.js.map +1 -1
  14. package/dist/conversation-store.d.ts +1 -1
  15. package/dist/conversation-store.d.ts.map +1 -1
  16. package/dist/conversation-store.js +3 -3
  17. package/dist/conversation-store.js.map +1 -1
  18. package/dist/errors.d.ts +19 -2
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +45 -32
  21. package/dist/errors.js.map +1 -1
  22. package/dist/helpers.d.ts +2 -2
  23. package/dist/helpers.d.ts.map +1 -1
  24. package/dist/helpers.js +5 -4
  25. package/dist/helpers.js.map +1 -1
  26. package/dist/index.d.ts +4 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +16 -9
  29. package/dist/index.js.map +1 -1
  30. package/dist/middleware/builtin.d.ts +19 -22
  31. package/dist/middleware/builtin.d.ts.map +1 -1
  32. package/dist/middleware/builtin.js +93 -111
  33. package/dist/middleware/builtin.js.map +1 -1
  34. package/dist/middleware/process.d.ts +3 -3
  35. package/dist/middleware/process.d.ts.map +1 -1
  36. package/dist/middleware/process.js +1 -1
  37. package/dist/middleware/process.js.map +1 -1
  38. package/dist/receivers/AwsLambdaReceiver.d.ts +77 -16
  39. package/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
  40. package/dist/receivers/AwsLambdaReceiver.js +53 -25
  41. package/dist/receivers/AwsLambdaReceiver.js.map +1 -1
  42. package/dist/receivers/BufferedIncomingMessage.d.ts +2 -1
  43. package/dist/receivers/BufferedIncomingMessage.d.ts.map +1 -1
  44. package/dist/receivers/ExpressReceiver.d.ts +13 -13
  45. package/dist/receivers/ExpressReceiver.d.ts.map +1 -1
  46. package/dist/receivers/ExpressReceiver.js +70 -70
  47. package/dist/receivers/ExpressReceiver.js.map +1 -1
  48. package/dist/receivers/HTTPModuleFunctions.d.ts +18 -20
  49. package/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -1
  50. package/dist/receivers/HTTPModuleFunctions.js +187 -181
  51. package/dist/receivers/HTTPModuleFunctions.js.map +1 -1
  52. package/dist/receivers/HTTPReceiver.d.ts +14 -14
  53. package/dist/receivers/HTTPReceiver.d.ts.map +1 -1
  54. package/dist/receivers/HTTPReceiver.js +92 -44
  55. package/dist/receivers/HTTPReceiver.js.map +1 -1
  56. package/dist/receivers/HTTPResponseAck.d.ts +7 -7
  57. package/dist/receivers/HTTPResponseAck.d.ts.map +1 -1
  58. package/dist/receivers/HTTPResponseAck.js +37 -5
  59. package/dist/receivers/HTTPResponseAck.js.map +1 -1
  60. package/dist/receivers/ParamsIncomingMessage.d.ts +2 -2
  61. package/dist/receivers/ParamsIncomingMessage.d.ts.map +1 -1
  62. package/dist/receivers/SocketModeFunctions.d.ts +3 -5
  63. package/dist/receivers/SocketModeFunctions.d.ts.map +1 -1
  64. package/dist/receivers/SocketModeFunctions.js +14 -23
  65. package/dist/receivers/SocketModeFunctions.js.map +1 -1
  66. package/dist/receivers/SocketModeReceiver.d.ts +9 -9
  67. package/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
  68. package/dist/receivers/SocketModeReceiver.js +29 -21
  69. package/dist/receivers/SocketModeReceiver.js.map +1 -1
  70. package/dist/receivers/custom-routes.d.ts +2 -2
  71. package/dist/receivers/custom-routes.d.ts.map +1 -1
  72. package/dist/receivers/custom-routes.js +10 -9
  73. package/dist/receivers/custom-routes.js.map +1 -1
  74. package/dist/receivers/verify-redirect-opts.d.ts +1 -1
  75. package/dist/receivers/verify-redirect-opts.d.ts.map +1 -1
  76. package/dist/receivers/verify-redirect-opts.js +3 -3
  77. package/dist/receivers/verify-redirect-opts.js.map +1 -1
  78. package/dist/receivers/verify-request.d.ts +1 -12
  79. package/dist/receivers/verify-request.d.ts.map +1 -1
  80. package/dist/receivers/verify-request.js +4 -18
  81. package/dist/receivers/verify-request.js.map +1 -1
  82. package/dist/types/actions/block-action.d.ts +17 -17
  83. package/dist/types/actions/block-action.d.ts.map +1 -1
  84. package/dist/types/actions/index.d.ts +25 -11
  85. package/dist/types/actions/index.d.ts.map +1 -1
  86. package/dist/types/actions/index.js +1 -0
  87. package/dist/types/actions/index.js.map +1 -1
  88. package/dist/types/actions/interactive-message.d.ts +3 -3
  89. package/dist/types/actions/interactive-message.d.ts.map +1 -1
  90. package/dist/types/actions/workflow-step-edit.d.ts +7 -7
  91. package/dist/types/actions/workflow-step-edit.d.ts.map +1 -1
  92. package/dist/types/command/index.d.ts +1 -2
  93. package/dist/types/command/index.d.ts.map +1 -1
  94. package/dist/types/events/index.d.ts +26 -24
  95. package/dist/types/events/index.d.ts.map +1 -1
  96. package/dist/types/events/index.js +4 -15
  97. package/dist/types/events/index.js.map +1 -1
  98. package/dist/types/middleware.d.ts +26 -14
  99. package/dist/types/middleware.d.ts.map +1 -1
  100. package/dist/types/middleware.js +3 -0
  101. package/dist/types/middleware.js.map +1 -1
  102. package/dist/types/options/index.d.ts +16 -51
  103. package/dist/types/options/index.d.ts.map +1 -1
  104. package/dist/types/receiver.d.ts +3 -3
  105. package/dist/types/receiver.d.ts.map +1 -1
  106. package/dist/types/shortcuts/global-shortcut.d.ts.map +1 -1
  107. package/dist/types/shortcuts/index.d.ts +14 -9
  108. package/dist/types/shortcuts/index.d.ts.map +1 -1
  109. package/dist/types/shortcuts/message-shortcut.d.ts.map +1 -1
  110. package/dist/types/utilities.d.ts +27 -18
  111. package/dist/types/utilities.d.ts.map +1 -1
  112. package/dist/types/utilities.js +7 -0
  113. package/dist/types/utilities.js.map +1 -1
  114. package/dist/types/view/index.d.ts +15 -7
  115. package/dist/types/view/index.d.ts.map +1 -1
  116. package/package.json +27 -41
  117. package/dist/WorkflowFunction.d.ts +0 -63
  118. package/dist/WorkflowFunction.d.ts.map +0 -1
  119. package/dist/WorkflowFunction.js +0 -130
  120. package/dist/WorkflowFunction.js.map +0 -1
  121. package/dist/receivers/http-utils.d.ts +0 -5
  122. package/dist/receivers/http-utils.d.ts.map +0 -1
  123. package/dist/receivers/http-utils.js +0 -19
  124. package/dist/receivers/http-utils.js.map +0 -1
  125. package/dist/receivers/render-html-for-install-path.d.ts +0 -3
  126. package/dist/receivers/render-html-for-install-path.d.ts.map +0 -1
  127. package/dist/receivers/render-html-for-install-path.js +0 -32
  128. package/dist/receivers/render-html-for-install-path.js.map +0 -1
  129. package/dist/types/events/base-events.d.ts +0 -1187
  130. package/dist/types/events/base-events.d.ts.map +0 -1
  131. package/dist/types/events/base-events.js +0 -5
  132. package/dist/types/events/base-events.js.map +0 -1
  133. package/dist/types/events/message-events.d.ts +0 -348
  134. package/dist/types/events/message-events.d.ts.map +0 -1
  135. package/dist/types/events/message-events.js +0 -3
  136. package/dist/types/events/message-events.js.map +0 -1
  137. package/dist/types/helpers.d.ts +0 -17
  138. package/dist/types/helpers.d.ts.map +0 -1
  139. package/dist/types/helpers.js +0 -3
  140. package/dist/types/helpers.js.map +0 -1
@@ -1,41 +1,29 @@
1
- import { Middleware, AnyMiddlewareArgs, SlackActionMiddlewareArgs, SlackCommandMiddlewareArgs, SlackEventMiddlewareArgs, SlackOptionsMiddlewareArgs, SlackViewMiddlewareArgs, SlackEvent, SlackAction, SlackShortcut, SlashCommand, SlackOptions, EventTypePattern, ViewOutput } from '../types';
2
- import { ActionConstraints, ViewConstraints, ShortcutConstraints, OptionsConstraints } from '../App';
1
+ import type { ActionConstraints, OptionsConstraints, ShortcutConstraints, ViewConstraints } from '../App';
2
+ import type { AnyMiddlewareArgs, EventTypePattern, Middleware, SlackActionMiddlewareArgs, SlackCommandMiddlewareArgs, SlackEventMiddlewareArgs, SlackOptionsMiddlewareArgs, SlackViewMiddlewareArgs } from '../types';
3
3
  /**
4
4
  * Middleware that filters out any event that isn't an action
5
5
  */
6
- export declare const onlyActions: Middleware<AnyMiddlewareArgs & {
7
- action?: SlackAction;
8
- }>;
6
+ export declare const onlyActions: Middleware<AnyMiddlewareArgs>;
9
7
  /**
10
8
  * Middleware that filters out any event that isn't a shortcut
11
9
  */
12
- export declare const onlyShortcuts: Middleware<AnyMiddlewareArgs & {
13
- shortcut?: SlackShortcut;
14
- }>;
10
+ export declare const onlyShortcuts: Middleware<AnyMiddlewareArgs>;
15
11
  /**
16
12
  * Middleware that filters out any event that isn't a command
17
13
  */
18
- export declare const onlyCommands: Middleware<AnyMiddlewareArgs & {
19
- command?: SlashCommand;
20
- }>;
14
+ export declare const onlyCommands: Middleware<AnyMiddlewareArgs>;
21
15
  /**
22
16
  * Middleware that filters out any event that isn't an options
23
17
  */
24
- export declare const onlyOptions: Middleware<AnyMiddlewareArgs & {
25
- options?: SlackOptions;
26
- }>;
18
+ export declare const onlyOptions: Middleware<AnyMiddlewareArgs>;
27
19
  /**
28
20
  * Middleware that filters out any event that isn't an event
29
21
  */
30
- export declare const onlyEvents: Middleware<AnyMiddlewareArgs & {
31
- event?: SlackEvent;
32
- }>;
22
+ export declare const onlyEvents: Middleware<AnyMiddlewareArgs>;
33
23
  /**
34
24
  * Middleware that filters out any event that isn't a view_submission or view_closed event
35
25
  */
36
- export declare const onlyViewActions: Middleware<AnyMiddlewareArgs & {
37
- view?: ViewOutput;
38
- }>;
26
+ export declare const onlyViewActions: Middleware<AnyMiddlewareArgs>;
39
27
  /**
40
28
  * Middleware that checks for matches given constraints
41
29
  */
@@ -46,7 +34,16 @@ export declare function matchMessage(pattern: string | RegExp): Middleware<Slack
46
34
  */
47
35
  export declare function matchCommandName(pattern: string | RegExp): Middleware<SlackCommandMiddlewareArgs>;
48
36
  export declare function matchEventType(pattern: EventTypePattern): Middleware<SlackEventMiddlewareArgs>;
49
- export declare function ignoreSelf(): Middleware<AnyMiddlewareArgs>;
37
+ /**
38
+ * Filters out any event originating from the handling app.
39
+ */
40
+ export declare const ignoreSelf: Middleware<AnyMiddlewareArgs>;
41
+ /**
42
+ * Filters out any message events whose subtype does not match the provided subtype.
43
+ */
50
44
  export declare function subtype(subtype1: string): Middleware<SlackEventMiddlewareArgs<'message'>>;
51
- export declare function directMention(): Middleware<SlackEventMiddlewareArgs<'message'>>;
45
+ /**
46
+ * Filters out any message event whose text does not start with an @-mention of the handling app.
47
+ */
48
+ export declare const directMention: Middleware<SlackEventMiddlewareArgs<'message'>>;
52
49
  //# sourceMappingURL=builtin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/middleware/builtin.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAE1B,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EAUZ,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAGrG;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,iBAAiB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAShF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,CAUtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC,iBAAiB,GAAG;IAAE,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAUnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,iBAAiB,GAAG;IAAE,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAUlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,iBAAiB,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,CAU7E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,iBAAiB,GAAG;IAAE,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,CAUjF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,iBAAiB,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAC1F,UAAU,CAAC,yBAAyB,GAAG,0BAA0B,GAAG,uBAAuB,CAAC,CAiF9F;AAKD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,UAAU,CAAC,wBAAwB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAyBjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,CASjG;AAYD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAwB9F;AAED,wBAAgB,UAAU,IAAI,UAAU,CAAC,iBAAiB,CAAC,CA+B1D;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAMzF;AAID,wBAAgB,aAAa,IAAI,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CA+B/E"}
1
+ {"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/middleware/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE1G,OAAO,KAAK,EACV,iBAAiB,EAKjB,gBAAgB,EAKhB,UAAU,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAG1B,uBAAuB,EACxB,MAAM,UAAU,CAAC;AA4ClB;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,iBAAiB,CAIrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,iBAAiB,CAIvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC,iBAAiB,CAItD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,iBAAiB,CAIrD,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAIpD,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,iBAAiB,CAIzD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,iBAAiB,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAC1F,UAAU,CAAC,yBAAyB,GAAG,0BAA0B,GAAG,uBAAuB,CAAC,CAiF9F;AAKD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,UAAU,CAAC,wBAAwB,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAyBjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,CASjG;AAYD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAwB9F;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,iBAAiB,CA4BpD,CAAC;AAGF;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAMzF;AAID;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,CA6BzE,CAAC"}
@@ -1,90 +1,81 @@
1
1
  "use strict";
2
- /* eslint-disable @typescript-eslint/dot-notation */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.directMention = exports.subtype = exports.ignoreSelf = exports.matchEventType = exports.matchCommandName = exports.matchMessage = exports.matchConstraints = exports.onlyViewActions = exports.onlyEvents = exports.onlyOptions = exports.onlyCommands = exports.onlyShortcuts = exports.onlyActions = void 0;
5
4
  const errors_1 = require("../errors");
5
+ /** Type predicate that can narrow payloads block action or suggestion payloads */
6
+ function isBlockPayload(payload) {
7
+ return 'action_id' in payload && payload.action_id !== undefined;
8
+ }
9
+ // TODO: consider exporting these type guards for use elsewhere within bolt
10
+ // TODO: is there overlap with `function_executed` event here?
11
+ function isCallbackIdentifiedBody(body) {
12
+ return 'callback_id' in body && body.callback_id !== undefined;
13
+ }
14
+ // TODO: clarify terminology used internally: event vs. body vs. payload
15
+ /** Type predicate that can narrow event bodies to ones containing Views */
16
+ function isViewBody(body) {
17
+ return 'view' in body && body.view !== undefined;
18
+ }
19
+ function isEventArgs(args) {
20
+ return 'event' in args && args.event !== undefined;
21
+ }
22
+ function isMessageEventArgs(args) {
23
+ return isEventArgs(args) && 'message' in args;
24
+ }
6
25
  /**
7
26
  * Middleware that filters out any event that isn't an action
8
27
  */
9
28
  const onlyActions = async (args) => {
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- const { action, next } = args; // FIXME: workaround for TypeScript 4.7 breaking changes
12
- // Filter out any non-actions
13
- if (action === undefined) {
14
- return;
29
+ if ('action' in args && args.action) {
30
+ await args.next();
15
31
  }
16
- // It matches so we should continue down this middleware listener chain
17
- await next();
18
32
  };
19
33
  exports.onlyActions = onlyActions;
20
34
  /**
21
35
  * Middleware that filters out any event that isn't a shortcut
22
36
  */
23
37
  const onlyShortcuts = async (args) => {
24
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
- const { shortcut, next } = args; // FIXME: workaround for TypeScript 4.7 breaking changes
26
- // Filter out any non-shortcuts
27
- if (shortcut === undefined) {
28
- return;
38
+ if ('shortcut' in args && args.shortcut) {
39
+ await args.next();
29
40
  }
30
- // It matches so we should continue down this middleware listener chain
31
- await next();
32
41
  };
33
42
  exports.onlyShortcuts = onlyShortcuts;
34
43
  /**
35
44
  * Middleware that filters out any event that isn't a command
36
45
  */
37
46
  const onlyCommands = async (args) => {
38
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
- const { command, next } = args; // FIXME: workaround for TypeScript 4.7 breaking changes
40
- // Filter out any non-commands
41
- if (command === undefined) {
42
- return;
47
+ if ('command' in args && args.command) {
48
+ await args.next();
43
49
  }
44
- // It matches so we should continue down this middleware listener chain
45
- await next();
46
50
  };
47
51
  exports.onlyCommands = onlyCommands;
48
52
  /**
49
53
  * Middleware that filters out any event that isn't an options
50
54
  */
51
55
  const onlyOptions = async (args) => {
52
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
- const { options, next } = args; // FIXME: workaround for TypeScript 4.7 breaking changes
54
- // Filter out any non-options requests
55
- if (options === undefined) {
56
- return;
56
+ if ('options' in args && args.options) {
57
+ await args.next();
57
58
  }
58
- // It matches so we should continue down this middleware listener chain
59
- await next();
60
59
  };
61
60
  exports.onlyOptions = onlyOptions;
61
+ // TODO: event terminology here "event that isn't an event" wat
62
62
  /**
63
63
  * Middleware that filters out any event that isn't an event
64
64
  */
65
65
  const onlyEvents = async (args) => {
66
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
- const { event, next } = args; // FIXME: workaround for TypeScript 4.7 breaking changes
68
- // Filter out any non-events
69
- if (event === undefined) {
70
- return;
66
+ if (isEventArgs(args)) {
67
+ await args.next();
71
68
  }
72
- // It matches so we should continue down this middleware listener chain
73
- await next();
74
69
  };
75
70
  exports.onlyEvents = onlyEvents;
71
+ // TODO: event terminology "ViewAction" is confusing since "Action" we use for block actions
76
72
  /**
77
73
  * Middleware that filters out any event that isn't a view_submission or view_closed event
78
74
  */
79
75
  const onlyViewActions = async (args) => {
80
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- const { view, next } = args; // FIXME: workaround for TypeScript 4.7 breaking changes
82
- // Filter out anything that doesn't have a view
83
- if (view === undefined) {
84
- return;
76
+ if ('view' in args) {
77
+ await args.next();
85
78
  }
86
- // It matches so we should continue down this middleware listener chain
87
- await next();
88
79
  };
89
80
  exports.onlyViewActions = onlyViewActions;
90
81
  /**
@@ -110,7 +101,7 @@ function matchConstraints(constraints) {
110
101
  else {
111
102
  tempMatches = payload.block_id.match(constraints.block_id);
112
103
  if (tempMatches !== null) {
113
- context['blockIdMatches'] = tempMatches;
104
+ context.blockIdMatches = tempMatches;
114
105
  }
115
106
  else {
116
107
  return;
@@ -127,7 +118,7 @@ function matchConstraints(constraints) {
127
118
  else {
128
119
  tempMatches = payload.action_id.match(constraints.action_id);
129
120
  if (tempMatches !== null) {
130
- context['actionIdMatches'] = tempMatches;
121
+ context.actionIdMatches = tempMatches;
131
122
  }
132
123
  else {
133
124
  return;
@@ -139,10 +130,10 @@ function matchConstraints(constraints) {
139
130
  if ('callback_id' in constraints && constraints.callback_id !== undefined) {
140
131
  let callbackId = '';
141
132
  if (isViewBody(body)) {
142
- callbackId = body['view']['callback_id'];
133
+ callbackId = body.view.callback_id;
143
134
  }
144
135
  else if (isCallbackIdentifiedBody(body)) {
145
- callbackId = body['callback_id'];
136
+ callbackId = body.callback_id;
146
137
  }
147
138
  else {
148
139
  return;
@@ -155,7 +146,7 @@ function matchConstraints(constraints) {
155
146
  else {
156
147
  tempMatches = callbackId.match(constraints.callback_id);
157
148
  if (tempMatches !== null) {
158
- context['callbackIdMatches'] = tempMatches;
149
+ context.callbackIdMatches = tempMatches;
159
150
  }
160
151
  else {
161
152
  return;
@@ -189,7 +180,7 @@ function matchMessage(pattern) {
189
180
  else {
190
181
  tempMatches = event.text.match(pattern);
191
182
  if (tempMatches !== null) {
192
- context['matches'] = tempMatches;
183
+ context.matches = tempMatches;
193
184
  }
194
185
  else {
195
186
  return;
@@ -236,7 +227,7 @@ function matchEventType(pattern) {
236
227
  else {
237
228
  tempMatches = event.type.match(pattern);
238
229
  if (tempMatches !== null) {
239
- context['matches'] = tempMatches;
230
+ context.matches = tempMatches;
240
231
  }
241
232
  else {
242
233
  return;
@@ -246,78 +237,69 @@ function matchEventType(pattern) {
246
237
  };
247
238
  }
248
239
  exports.matchEventType = matchEventType;
249
- function ignoreSelf() {
250
- return async (args) => {
251
- const botId = args.context.botId;
252
- const botUserId = args.context.botUserId !== undefined ? args.context.botUserId : undefined;
253
- if (isEventArgs(args)) {
254
- // Once we've narrowed the type down to SlackEventMiddlewareArgs, there's no way to further narrow it down to
255
- // SlackEventMiddlewareArgs<'message'> without a cast, so the following couple lines do that.
256
- if (args.message !== undefined) {
257
- const message = args.message;
258
- // TODO: revisit this once we have all the message subtypes defined to see if we can do this better with
259
- // type narrowing
260
- // Look for an event that is identified as a bot message from the same bot ID as this app, and return to skip
261
- if (message.subtype === 'bot_message' && message.bot_id === botId) {
262
- return;
263
- }
264
- }
265
- // Its an Events API event that isn't of type message, but the user ID might match our own app. Filter these out.
266
- // However, some events still must be fired, because they can make sense.
267
- const eventsWhichShouldBeKept = ['member_joined_channel', 'member_left_channel'];
268
- const isEventShouldBeKept = eventsWhichShouldBeKept.includes(args.event.type);
269
- if (botUserId !== undefined && 'user' in args.event && args.event.user === botUserId && !isEventShouldBeKept) {
240
+ /**
241
+ * Filters out any event originating from the handling app.
242
+ */
243
+ const ignoreSelf = async (args) => {
244
+ const { botId, botUserId } = args.context;
245
+ if (isEventArgs(args)) {
246
+ if (isMessageEventArgs(args)) {
247
+ const { message } = args;
248
+ // Look for an event that is identified as a bot message from the same bot ID as this app, and return to skip
249
+ if (message.subtype === 'bot_message' && message.bot_id === botId) {
270
250
  return;
271
251
  }
272
252
  }
273
- // If all the previous checks didn't skip this message, then its okay to resume to next
274
- await args.next();
275
- };
276
- }
253
+ // It's an Events API event that isn't of type message, but the user ID might match our own app. Filter these out.
254
+ // However, some events still must be fired, because they can make sense.
255
+ const eventsWhichShouldBeKept = ['member_joined_channel', 'member_left_channel'];
256
+ if (botUserId !== undefined &&
257
+ 'user' in args.event &&
258
+ args.event.user === botUserId &&
259
+ !eventsWhichShouldBeKept.includes(args.event.type)) {
260
+ return;
261
+ }
262
+ }
263
+ // If all the previous checks didn't skip this message, then its okay to resume to next
264
+ await args.next();
265
+ };
277
266
  exports.ignoreSelf = ignoreSelf;
267
+ // TODO: breaking change: constrain the subtype argument to be a valid message subtype
268
+ /**
269
+ * Filters out any message events whose subtype does not match the provided subtype.
270
+ */
278
271
  function subtype(subtype1) {
279
272
  return async ({ message, next }) => {
280
- if (message.subtype === subtype1) {
273
+ if (message && message.subtype === subtype1) {
281
274
  await next();
282
275
  }
283
276
  };
284
277
  }
285
278
  exports.subtype = subtype;
286
279
  const slackLink = /<(?<type>[@#!])?(?<link>[^>|]+)(?:\|(?<label>[^>]+))?>/;
287
- function directMention() {
288
- return async ({ message, context, next }) => {
289
- // When context does not have a botUserId in it, then this middleware cannot perform its job. Bail immediately.
290
- if (context.botUserId === undefined) {
291
- throw new errors_1.ContextMissingPropertyError('botUserId', 'Cannot match direct mentions of the app without a bot user ID. Ensure authorize callback returns a botUserId.');
292
- }
293
- if (!('text' in message) || message.text === undefined) {
294
- return;
295
- }
296
- // Match the message text with a user mention format
297
- const text = message.text.trim();
298
- const matches = slackLink.exec(text);
299
- if (matches === null || // stop when no matches are found
300
- matches.index !== 0 || // stop if match isn't at the beginning
301
- // stop if match isn't a user mention with the right user ID
302
- matches.groups === undefined ||
303
- matches.groups.type !== '@' ||
304
- matches.groups.link !== context.botUserId) {
305
- return;
306
- }
307
- await next();
308
- };
309
- }
280
+ /**
281
+ * Filters out any message event whose text does not start with an @-mention of the handling app.
282
+ */
283
+ const directMention = async ({ message, context, next }) => {
284
+ // When context does not have a botUserId in it, then this middleware cannot perform its job. Bail immediately.
285
+ if (context.botUserId === undefined) {
286
+ throw new errors_1.ContextMissingPropertyError('botUserId', 'Cannot match direct mentions of the app without a bot user ID. Ensure authorize callback returns a botUserId.');
287
+ }
288
+ if (!message || !('text' in message) || message.text === undefined) {
289
+ return;
290
+ }
291
+ // Match the message text with a user mention format
292
+ const text = message.text.trim();
293
+ const matches = slackLink.exec(text);
294
+ if (matches === null || // stop when no matches are found
295
+ matches.index !== 0 || // stop if match isn't at the beginning
296
+ // stop if match isn't a user mention with the right user ID
297
+ matches.groups === undefined ||
298
+ matches.groups.type !== '@' ||
299
+ matches.groups.link !== context.botUserId) {
300
+ return;
301
+ }
302
+ await next();
303
+ };
310
304
  exports.directMention = directMention;
311
- function isBlockPayload(payload) {
312
- return payload.action_id !== undefined;
313
- }
314
- function isCallbackIdentifiedBody(body) {
315
- return body.callback_id !== undefined;
316
- }
317
- function isViewBody(body) {
318
- return body.view !== undefined;
319
- }
320
- function isEventArgs(args) {
321
- return args.event !== undefined;
322
- }
323
305
  //# sourceMappingURL=builtin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/middleware/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/middleware/builtin.ts"],"names":[],"mappings":";;;AACA,sCAAwD;AAsBxD,kFAAkF;AAClF,SAAS,cAAc,CACrB,OAGsC;IAEtC,OAAO,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;AACnE,CAAC;AAUD,2EAA2E;AAC3E,8DAA8D;AAC9D,SAAS,wBAAwB,CAC/B,IAAkH;IAElH,OAAO,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;AACjE,CAAC;AAED,wEAAwE;AACxE,2EAA2E;AAC3E,SAAS,UAAU,CACjB,IAA8G;IAE9G,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,IAAuB;IAC1C,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAuB;IACjD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC;AAChD,CAAC;AAED;;GAEG;AACI,MAAM,WAAW,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IACvE,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB;AAEF;;GAEG;AACI,MAAM,aAAa,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IACzE,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB;AAEF;;GAEG;AACI,MAAM,YAAY,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IACxE,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,YAAY,gBAIvB;AAEF;;GAEG;AACI,MAAM,WAAW,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IACvE,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB;AAEF,+DAA+D;AAC/D;;GAEG;AACI,MAAM,UAAU,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtE,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEF,4FAA4F;AAC5F;;GAEG;AACI,MAAM,eAAe,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IAC3E,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,WAA2F;IAE3F,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,iHAAiH;QACjH,qCAAqC;QACrC,IAAI,WAAoC,CAAC;QAEzC,oCAAoC;QACpC,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,iBAAiB;YACjB,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC7C,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;wBAC9C,OAAO;oBACT,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBAE3D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;wBACzB,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACN,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACxC,IAAI,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC9C,IAAI,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;wBAChD,OAAO;oBACT,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAE7D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;wBACzB,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACN,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC1E,IAAI,UAAU,GAAG,EAAE,CAAC;YAEpB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACrC,CAAC;iBAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO;YACT,CAAC;YAED,IAAI,OAAO,WAAW,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAChD,IAAI,UAAU,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAExD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,OAAO,CAAC,iBAAiB,GAAG,WAAW,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;gBAAE,OAAO;QAC7C,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAnFD,4CAmFC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,OAAwB;IAExB,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,IAAI,WAAoC,CAAC;QAEzC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AA3BD,oCA2BC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAwB;IACvD,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,gFAAgF;QAChF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AATD,4CASC;AAED,SAAS,cAAc,CAAC,OAAwB,EAAE,SAAiB;IACjE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,KAAK,SAAS,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAyB;IACtD,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,IAAI,WAAoC,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAxBD,wCAwBC;AAED;;GAEG;AACI,MAAM,UAAU,GAAkC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IAE1C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,6GAA6G;YAC7G,IAAI,OAAO,CAAC,OAAO,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAClE,OAAO;YACT,CAAC;QACH,CAAC;QAED,kHAAkH;QAClH,yEAAyE;QACzE,MAAM,uBAAuB,GAAG,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;QAEjF,IACE,SAAS,KAAK,SAAS;YACvB,MAAM,IAAI,IAAI,CAAC,KAAK;YACpB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YAC7B,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAClD,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AA5BW,QAAA,UAAU,cA4BrB;AAEF,sFAAsF;AACtF;;GAEG;AACH,SAAgB,OAAO,CAAC,QAAgB;IACtC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAND,0BAMC;AAED,MAAM,SAAS,GAAG,wDAAwD,CAAC;AAE3E;;GAEG;AACI,MAAM,aAAa,GAAoD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IACjH,+GAA+G;IAC/G,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,oCAA2B,CACnC,WAAW,EACX,+GAA+G,CAChH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO;IACT,CAAC;IAED,oDAAoD;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,IACE,OAAO,KAAK,IAAI,IAAI,iCAAiC;QACrD,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,uCAAuC;QAC9D,4DAA4D;QAC5D,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG;QAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,EACzC,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC;AA7BW,QAAA,aAAa,iBA6BxB"}
@@ -1,5 +1,5 @@
1
- import { WebClient } from '@slack/web-api';
2
- import { Logger } from '@slack/logger';
3
- import { Middleware, AnyMiddlewareArgs, Context } from '../types';
1
+ import type { Logger } from '@slack/logger';
2
+ import type { WebClient } from '@slack/web-api';
3
+ import type { AnyMiddlewareArgs, Context, Middleware } from '../types';
4
4
  export default function processMiddleware(middleware: Middleware<AnyMiddlewareArgs>[], initialArgs: AnyMiddlewareArgs, context: Context, client: WebClient, logger: Logger, last: () => Promise<void>): Promise<void>;
5
5
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/middleware/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAElE,wBAA8B,iBAAiB,CAC7C,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAC3C,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/middleware/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvE,wBAA8B,iBAAiB,CAC7C,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAC3C,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -10,8 +10,8 @@ async function processMiddleware(middleware, initialArgs, context, client, logge
10
10
  if (toCallMiddlewareIndex < middleware.length) {
11
11
  lastCalledMiddlewareIndex = toCallMiddlewareIndex;
12
12
  return middleware[toCallMiddlewareIndex]({
13
- next: () => invokeMiddleware(toCallMiddlewareIndex + 1),
14
13
  ...initialArgs,
14
+ next: () => invokeMiddleware(toCallMiddlewareIndex + 1),
15
15
  context,
16
16
  client,
17
17
  logger,
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/middleware/process.ts"],"names":[],"mappings":";;AAIe,KAAK,UAAU,iBAAiB,CAC7C,UAA2C,EAC3C,WAA8B,EAC9B,OAAgB,EAChB,MAAiB,EACjB,MAAc,EACd,IAAyB;IAEzB,IAAI,yBAAyB,GAAG,CAAC,CAAC,CAAC;IAEnC,KAAK,UAAU,gBAAgB,CAAC,qBAA6B;QAC3D,IAAI,yBAAyB,IAAI,qBAAqB,EAAE;YACtD,0BAA0B;YAC1B,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAC7C;QAED,IAAI,qBAAqB,GAAG,UAAU,CAAC,MAAM,EAAE;YAC7C,yBAAyB,GAAG,qBAAqB,CAAC;YAClD,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBACvC,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBACvD,GAAG,WAAW;gBACd,OAAO;gBACP,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AA/BD,oCA+BC"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/middleware/process.ts"],"names":[],"mappings":";;AAIe,KAAK,UAAU,iBAAiB,CAC7C,UAA2C,EAC3C,WAA8B,EAC9B,OAAgB,EAChB,MAAiB,EACjB,MAAc,EACd,IAAyB;IAEzB,IAAI,yBAAyB,GAAG,CAAC,CAAC,CAAC;IAEnC,KAAK,UAAU,gBAAgB,CAAC,qBAA6B;QAC3D,IAAI,yBAAyB,IAAI,qBAAqB,EAAE,CAAC;YACvD,0BAA0B;YAC1B,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,qBAAqB,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;YAC9C,yBAAyB,GAAG,qBAAqB,CAAC;YAClD,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBACvC,GAAG,WAAW;gBACd,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBACvD,OAAO;gBACP,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AA/BD,oCA+BC"}
@@ -1,22 +1,46 @@
1
- import { Logger, LogLevel } from '@slack/logger';
2
- import App from '../App';
3
- import { Receiver } from '../types/receiver';
4
- import { StringIndexed } from '../types/helpers';
5
- export interface AwsEvent {
1
+ import { LogLevel, type Logger } from '@slack/logger';
2
+ import type App from '../App';
3
+ import type { Receiver } from '../types/receiver';
4
+ import type { StringIndexed } from '../types/utilities';
5
+ export type AwsEvent = AwsEventV1 | AwsEventV2;
6
+ type AwsEventStringParameters = Record<string, string | undefined>;
7
+ type AwsEventMultiValueStringParameters = Record<string, string[] | undefined>;
8
+ export interface AwsEventV1 {
6
9
  body: string | null;
7
- headers: any;
8
- multiValueHeaders: any;
9
- httpMethod: string;
10
+ headers: AwsEventStringParameters;
10
11
  isBase64Encoded: boolean;
11
- path: string;
12
- pathParameters: any | null;
13
- queryStringParameters: any | null;
14
- multiValueQueryStringParameters: any | null;
15
- stageVariables: any | null;
12
+ pathParameters: AwsEventStringParameters | null;
13
+ queryStringParameters: AwsEventStringParameters | null;
16
14
  requestContext: any;
15
+ stageVariables: AwsEventStringParameters | null;
16
+ httpMethod: string;
17
+ multiValueHeaders: AwsEventMultiValueStringParameters;
18
+ multiValueQueryStringParameters: AwsEventMultiValueStringParameters;
19
+ path: string;
17
20
  resource: string;
18
21
  }
19
- export declare type AwsCallback = (error?: Error | string | null, result?: any) => void;
22
+ export interface AwsEventV2 {
23
+ body?: string;
24
+ headers: AwsEventStringParameters;
25
+ isBase64Encoded: boolean;
26
+ pathParameters?: AwsEventStringParameters;
27
+ queryStringParameters?: AwsEventStringParameters;
28
+ requestContext: any;
29
+ stageVariables?: AwsEventStringParameters;
30
+ cookies?: string[];
31
+ rawPath: string;
32
+ rawQueryString: string;
33
+ routeKey: string;
34
+ version: string;
35
+ }
36
+ export type AwsCallback = (error?: Error | string | null, result?: any) => void;
37
+ export interface ReceiverInvalidRequestSignatureHandlerArgs {
38
+ rawBody: string;
39
+ signature: string;
40
+ ts: number;
41
+ awsEvent: AwsEvent;
42
+ awsResponse: Promise<AwsResponse>;
43
+ }
20
44
  export interface AwsResponse {
21
45
  statusCode: number;
22
46
  headers?: {
@@ -28,19 +52,54 @@ export interface AwsResponse {
28
52
  body: string;
29
53
  isBase64Encoded?: boolean;
30
54
  }
31
- export declare type AwsHandler = (event: AwsEvent, context: any, callback: AwsCallback) => Promise<AwsResponse>;
55
+ export type AwsHandler = (event: AwsEvent, context: any, callback: AwsCallback) => Promise<AwsResponse>;
32
56
  export interface AwsLambdaReceiverOptions {
57
+ /**
58
+ * The Slack Signing secret to be used as an input to signature verification to ensure that requests are coming from
59
+ * Slack.
60
+ *
61
+ * If the {@link signatureVerification} flag is set to `false`, this can be set to any value as signature verification
62
+ * using this secret will not be performed.
63
+ *
64
+ * @see {@link https://api.slack.com/authentication/verifying-requests-from-slack#about} for details about signing secrets
65
+ */
33
66
  signingSecret: string;
67
+ /**
68
+ * The {@link Logger} for the receiver
69
+ *
70
+ * @default ConsoleLogger
71
+ */
34
72
  logger?: Logger;
73
+ /**
74
+ * The {@link LogLevel} to be used for the logger.
75
+ *
76
+ * @default LogLevel.INFO
77
+ */
35
78
  logLevel?: LogLevel;
79
+ /**
80
+ * Flag that determines whether Bolt should {@link https://api.slack.com/authentication/verifying-requests-from-slack|verify Slack's signature on incoming requests}.
81
+ *
82
+ * @default true
83
+ */
84
+ signatureVerification?: boolean;
85
+ /**
86
+ * Optional `function` that can extract custom properties from an incoming receiver event
87
+ * @param request The API Gateway event {@link AwsEvent}
88
+ * @returns An object containing custom properties
89
+ *
90
+ * @default noop
91
+ */
36
92
  customPropertiesExtractor?: (request: AwsEvent) => StringIndexed;
93
+ invalidRequestSignatureHandler?: (args: ReceiverInvalidRequestSignatureHandlerArgs) => void;
37
94
  }
38
95
  export default class AwsLambdaReceiver implements Receiver {
39
96
  private signingSecret;
40
97
  private app?;
41
98
  private logger;
99
+ private signatureVerification;
42
100
  private customPropertiesExtractor;
43
- constructor({ signingSecret, logger, logLevel, customPropertiesExtractor, }: AwsLambdaReceiverOptions);
101
+ private invalidRequestSignatureHandler;
102
+ constructor({ signingSecret, logger, logLevel, signatureVerification, customPropertiesExtractor, invalidRequestSignatureHandler, }: AwsLambdaReceiverOptions);
44
103
  init(app: App): void;
45
104
  start(..._args: any[]): Promise<AwsHandler>;
46
105
  stop(..._args: any[]): Promise<void>;
@@ -49,5 +108,7 @@ export default class AwsLambdaReceiver implements Receiver {
49
108
  private parseRequestBody;
50
109
  private isValidRequestSignature;
51
110
  private getHeaderValue;
111
+ private defaultInvalidRequestSignatureHandler;
52
112
  }
113
+ export {};
53
114
  //# sourceMappingURL=AwsLambdaReceiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AwsLambdaReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/AwsLambdaReceiver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAiB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,iBAAiB,EAAE,GAAG,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,qBAAqB,EAAE,GAAG,GAAG,IAAI,CAAC;IAClC,+BAA+B,EAAE,GAAG,GAAG,IAAI,CAAC;IAC5C,cAAc,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,GAAG,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oBAAY,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;KAC7C,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;KACpD,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,oBAAY,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAExG,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,aAAa,CAAC;CAClE;AAQD,MAAM,CAAC,OAAO,OAAO,iBAAkB,YAAW,QAAQ;IACxD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,GAAG,CAAC,CAAM;IAElB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,yBAAyB,CAAuC;gBAErD,EACjB,aAAa,EACb,MAAkB,EAClB,QAAwB,EACxB,yBAAuC,GACxC,EAAE,wBAAwB;IAYpB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAIpB,KAAK,CACV,GAAG,KAAK,EAAE,GAAG,EAAE,GACd,OAAO,CAAC,UAAU,CAAC;IAYf,IAAI,CACT,GAAG,KAAK,EAAE,GAAG,EAAE,GACd,OAAO,CAAC,IAAI,CAAC;IAMT,SAAS,IAAI,UAAU;IAyG9B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,cAAc;CAIvB"}
1
+ {"version":3,"file":"AwsLambdaReceiver.d.ts","sourceRoot":"","sources":["../../src/receivers/AwsLambdaReceiver.ts"],"names":[],"mappings":"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"}