slack.ts 0.0.6 → 0.0.8

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 (231) hide show
  1. package/dist/scripts/add_api_methods.d.ts +2 -0
  2. package/dist/scripts/add_api_methods.d.ts.map +1 -0
  3. package/dist/scripts/add_api_methods.js +30 -0
  4. package/dist/{events/types → src/api/events}/events.d.ts +1 -1
  5. package/dist/src/api/events/events.d.ts.map +1 -0
  6. package/dist/{events/types → src/api/events}/index.d.ts +2 -19
  7. package/dist/src/api/events/index.d.ts.map +1 -0
  8. package/dist/{api → src/api}/index.d.ts +52 -7
  9. package/dist/src/api/index.d.ts.map +1 -0
  10. package/dist/src/api/index.js +14 -0
  11. package/dist/{api → src/api}/interactive/block_actions.d.ts +9 -4
  12. package/dist/src/api/interactive/block_actions.d.ts.map +1 -0
  13. package/dist/src/api/interactive/common.d.ts.map +1 -0
  14. package/dist/{api → src/api}/interactive/view_submission.d.ts +3 -2
  15. package/dist/src/api/interactive/view_submission.d.ts.map +1 -0
  16. package/dist/src/api/slash/index.d.ts +18 -0
  17. package/dist/src/api/slash/index.d.ts.map +1 -0
  18. package/dist/src/api/types/api.d.ts.map +1 -0
  19. package/dist/{api → src/api}/types/conversation.d.ts +7 -7
  20. package/dist/src/api/types/conversation.d.ts.map +1 -0
  21. package/dist/src/api/types/file.d.ts +52 -0
  22. package/dist/src/api/types/file.d.ts.map +1 -0
  23. package/dist/{api → src/api}/types/message.d.ts +29 -9
  24. package/dist/src/api/types/message.d.ts.map +1 -0
  25. package/dist/src/api/types/user.d.ts.map +1 -0
  26. package/dist/src/api/types/value.d.ts.map +1 -0
  27. package/dist/{api → src/api}/types/view.d.ts +4 -4
  28. package/dist/src/api/types/view.d.ts.map +1 -0
  29. package/dist/src/api/web/apps.d.ts +219 -0
  30. package/dist/src/api/web/apps.d.ts.map +1 -0
  31. package/dist/src/api/web/auth.d.ts +39 -0
  32. package/dist/src/api/web/auth.d.ts.map +1 -0
  33. package/dist/src/api/web/bots.d.ts +22 -0
  34. package/dist/src/api/web/bots.d.ts.map +1 -0
  35. package/dist/{api → src/api}/web/chat.d.ts +14 -0
  36. package/dist/src/api/web/chat.d.ts.map +1 -0
  37. package/dist/{api → src/api}/web/conversations.d.ts +30 -10
  38. package/dist/src/api/web/conversations.d.ts.map +1 -0
  39. package/dist/{api → src/api}/web/files.d.ts +4 -3
  40. package/dist/src/api/web/files.d.ts.map +1 -0
  41. package/dist/src/api/web/users.d.ts.map +1 -0
  42. package/dist/src/api/web/users.js +1 -0
  43. package/dist/src/api/web/views.d.ts.map +1 -0
  44. package/dist/src/api/web/views.js +1 -0
  45. package/dist/{builders → src}/blocks/actions.d.ts +4 -3
  46. package/dist/src/blocks/actions.d.ts.map +1 -0
  47. package/dist/{builders → src}/blocks/base.d.ts +3 -2
  48. package/dist/src/blocks/base.d.ts.map +1 -0
  49. package/dist/{builders → src}/blocks/base.js +1 -0
  50. package/dist/src/blocks/elements/base.d.ts +10 -0
  51. package/dist/src/blocks/elements/base.d.ts.map +1 -0
  52. package/dist/{builders → src}/blocks/elements/base.js +2 -2
  53. package/dist/{builders → src}/blocks/elements/button.d.ts +2 -2
  54. package/dist/src/blocks/elements/button.d.ts.map +1 -0
  55. package/dist/{builders → src}/blocks/elements/button.js +3 -3
  56. package/dist/{builders → src}/blocks/elements/index.d.ts +1 -0
  57. package/dist/src/blocks/elements/index.d.ts.map +1 -0
  58. package/dist/{builders → src}/blocks/elements/index.js +1 -0
  59. package/dist/src/blocks/elements/overflow.d.ts +30 -0
  60. package/dist/src/blocks/elements/overflow.d.ts.map +1 -0
  61. package/dist/src/blocks/elements/overflow.js +28 -0
  62. package/dist/src/blocks/elements/plain_text_input.d.ts +27 -0
  63. package/dist/src/blocks/elements/plain_text_input.d.ts.map +1 -0
  64. package/dist/src/blocks/elements/plain_text_input.js +58 -0
  65. package/dist/src/blocks/index.d.ts.map +1 -0
  66. package/dist/{builders → src}/blocks/input.d.ts +5 -5
  67. package/dist/src/blocks/input.d.ts.map +1 -0
  68. package/dist/{builders → src}/blocks/input.js +1 -1
  69. package/dist/src/blocks/objects/confirm.d.ts +34 -0
  70. package/dist/src/blocks/objects/confirm.d.ts.map +1 -0
  71. package/dist/src/blocks/objects/confirm.js +54 -0
  72. package/dist/{builders → src}/blocks/objects/index.d.ts +2 -0
  73. package/dist/src/blocks/objects/index.d.ts.map +1 -0
  74. package/dist/src/blocks/objects/index.js +3 -0
  75. package/dist/src/blocks/objects/option.d.ts +17 -0
  76. package/dist/src/blocks/objects/option.d.ts.map +1 -0
  77. package/dist/src/blocks/objects/option.js +21 -0
  78. package/dist/{builders → src}/blocks/objects/text.d.ts +3 -0
  79. package/dist/src/blocks/objects/text.d.ts.map +1 -0
  80. package/dist/{builders → src}/blocks/objects/text.js +5 -1
  81. package/dist/src/blocks/section.d.ts +42 -0
  82. package/dist/src/blocks/section.d.ts.map +1 -0
  83. package/dist/src/blocks/section.js +48 -0
  84. package/dist/src/blocks/utils/extract.d.ts +56 -0
  85. package/dist/src/blocks/utils/extract.d.ts.map +1 -0
  86. package/dist/src/blocks/utils/extract.js +1 -0
  87. package/dist/{client.d.ts → src/client.d.ts} +43 -7
  88. package/dist/src/client.d.ts.map +1 -0
  89. package/dist/{client.js → src/client.js} +16 -3
  90. package/dist/src/error.d.ts.map +1 -0
  91. package/dist/{index.d.ts → src/index.d.ts} +1 -1
  92. package/dist/src/index.d.ts.map +1 -0
  93. package/dist/{index.js → src/index.js} +1 -1
  94. package/dist/src/receivers/base.d.ts +23 -0
  95. package/dist/src/receivers/base.d.ts.map +1 -0
  96. package/dist/src/receivers/base.js +1 -0
  97. package/dist/{events → src}/receivers/dummy.d.ts +1 -1
  98. package/dist/src/receivers/dummy.d.ts.map +1 -0
  99. package/dist/{events → src}/receivers/socket.d.ts +2 -2
  100. package/dist/src/receivers/socket.d.ts.map +1 -0
  101. package/dist/{events → src}/receivers/socket.js +4 -0
  102. package/dist/{resources → src/resources}/action.d.ts +1 -1
  103. package/dist/src/resources/action.d.ts.map +1 -0
  104. package/dist/{resources → src/resources}/action.js +2 -2
  105. package/dist/{resources → src/resources}/channel.d.ts +6 -5
  106. package/dist/src/resources/channel.d.ts.map +1 -0
  107. package/dist/{resources → src/resources}/message.d.ts +20 -17
  108. package/dist/src/resources/message.d.ts.map +1 -0
  109. package/dist/{resources → src/resources}/message.js +6 -7
  110. package/dist/src/resources/modal.d.ts +22 -0
  111. package/dist/src/resources/modal.d.ts.map +1 -0
  112. package/dist/src/resources/slash.d.ts +15 -0
  113. package/dist/src/resources/slash.d.ts.map +1 -0
  114. package/dist/src/resources/slash.js +22 -0
  115. package/dist/src/resources/submission.d.ts +13 -0
  116. package/dist/src/resources/submission.d.ts.map +1 -0
  117. package/dist/{resources → src/resources}/submission.js +5 -2
  118. package/dist/src/resources/user.d.ts.map +1 -0
  119. package/dist/src/utils/index.d.ts.map +1 -0
  120. package/dist/src/utils/messaging.d.ts +34 -0
  121. package/dist/src/utils/messaging.d.ts.map +1 -0
  122. package/dist/{utils → src/utils}/messaging.js +12 -2
  123. package/dist/{utils → src/utils}/paginate.d.ts +2 -2
  124. package/dist/src/utils/paginate.d.ts.map +1 -0
  125. package/dist/src/utils/respond.d.ts +24 -0
  126. package/dist/src/utils/respond.d.ts.map +1 -0
  127. package/dist/{utils → src/utils}/respond.js +1 -1
  128. package/dist/src/utils/typing.d.ts.map +1 -0
  129. package/dist/src/utils/typing.js +1 -0
  130. package/package.json +2 -2
  131. package/dist/api/index.d.ts.map +0 -1
  132. package/dist/api/index.js +0 -6
  133. package/dist/api/interactive/block_actions.d.ts.map +0 -1
  134. package/dist/api/interactive/common.d.ts.map +0 -1
  135. package/dist/api/interactive/view_submission.d.ts.map +0 -1
  136. package/dist/api/types/api.d.ts.map +0 -1
  137. package/dist/api/types/conversation.d.ts.map +0 -1
  138. package/dist/api/types/message.d.ts.map +0 -1
  139. package/dist/api/types/user.d.ts.map +0 -1
  140. package/dist/api/types/value.d.ts.map +0 -1
  141. package/dist/api/types/view.d.ts.map +0 -1
  142. package/dist/api/web/apps.d.ts +0 -6
  143. package/dist/api/web/apps.d.ts.map +0 -1
  144. package/dist/api/web/auth.d.ts +0 -13
  145. package/dist/api/web/auth.d.ts.map +0 -1
  146. package/dist/api/web/chat.d.ts.map +0 -1
  147. package/dist/api/web/conversations.d.ts.map +0 -1
  148. package/dist/api/web/files.d.ts.map +0 -1
  149. package/dist/api/web/users.d.ts.map +0 -1
  150. package/dist/api/web/views.d.ts.map +0 -1
  151. package/dist/builders/blocks/actions.d.ts.map +0 -1
  152. package/dist/builders/blocks/base.d.ts.map +0 -1
  153. package/dist/builders/blocks/elements/base.d.ts +0 -9
  154. package/dist/builders/blocks/elements/base.d.ts.map +0 -1
  155. package/dist/builders/blocks/elements/button.d.ts.map +0 -1
  156. package/dist/builders/blocks/elements/index.d.ts.map +0 -1
  157. package/dist/builders/blocks/elements/plain_text_input.d.ts +0 -12
  158. package/dist/builders/blocks/elements/plain_text_input.d.ts.map +0 -1
  159. package/dist/builders/blocks/elements/plain_text_input.js +0 -12
  160. package/dist/builders/blocks/index.d.ts.map +0 -1
  161. package/dist/builders/blocks/input.d.ts.map +0 -1
  162. package/dist/builders/blocks/objects/index.d.ts.map +0 -1
  163. package/dist/builders/blocks/objects/index.js +0 -1
  164. package/dist/builders/blocks/objects/text.d.ts.map +0 -1
  165. package/dist/builders/blocks/section.d.ts +0 -24
  166. package/dist/builders/blocks/section.d.ts.map +0 -1
  167. package/dist/builders/blocks/section.js +0 -22
  168. package/dist/builders/index.d.ts +0 -2
  169. package/dist/builders/index.d.ts.map +0 -1
  170. package/dist/builders/index.js +0 -1
  171. package/dist/client.d.ts.map +0 -1
  172. package/dist/error.d.ts.map +0 -1
  173. package/dist/events/receivers/dummy.d.ts.map +0 -1
  174. package/dist/events/receivers/socket.d.ts.map +0 -1
  175. package/dist/events/types/events.d.ts.map +0 -1
  176. package/dist/events/types/index.d.ts.map +0 -1
  177. package/dist/index.d.ts.map +0 -1
  178. package/dist/resources/action.d.ts.map +0 -1
  179. package/dist/resources/channel.d.ts.map +0 -1
  180. package/dist/resources/message.d.ts.map +0 -1
  181. package/dist/resources/modal.d.ts +0 -21
  182. package/dist/resources/modal.d.ts.map +0 -1
  183. package/dist/resources/submission.d.ts +0 -11
  184. package/dist/resources/submission.d.ts.map +0 -1
  185. package/dist/resources/user.d.ts.map +0 -1
  186. package/dist/utils/index.d.ts.map +0 -1
  187. package/dist/utils/messaging.d.ts +0 -28
  188. package/dist/utils/messaging.d.ts.map +0 -1
  189. package/dist/utils/paginate.d.ts.map +0 -1
  190. package/dist/utils/respond.d.ts +0 -31
  191. package/dist/utils/respond.d.ts.map +0 -1
  192. package/dist/utils/typing.d.ts.map +0 -1
  193. /package/dist/{events/types → src/api/events}/events.js +0 -0
  194. /package/dist/{events/types → src/api/events}/index.js +0 -0
  195. /package/dist/{api → src/api}/interactive/block_actions.js +0 -0
  196. /package/dist/{api → src/api}/interactive/common.d.ts +0 -0
  197. /package/dist/{api → src/api}/interactive/common.js +0 -0
  198. /package/dist/{api → src/api}/interactive/view_submission.js +0 -0
  199. /package/dist/{api/types/api.js → src/api/slash/index.js} +0 -0
  200. /package/dist/{api → src/api}/types/api.d.ts +0 -0
  201. /package/dist/{api/types/conversation.js → src/api/types/api.js} +0 -0
  202. /package/dist/{api/types/message.js → src/api/types/conversation.js} +0 -0
  203. /package/dist/{api/types/user.js → src/api/types/file.js} +0 -0
  204. /package/dist/{api/types/value.js → src/api/types/message.js} +0 -0
  205. /package/dist/{api → src/api}/types/user.d.ts +0 -0
  206. /package/dist/{api/types/view.js → src/api/types/user.js} +0 -0
  207. /package/dist/{api → src/api}/types/value.d.ts +0 -0
  208. /package/dist/{api/web/apps.js → src/api/types/value.js} +0 -0
  209. /package/dist/{api/web/auth.js → src/api/types/view.js} +0 -0
  210. /package/dist/{api/web/chat.js → src/api/web/apps.js} +0 -0
  211. /package/dist/{api/web/conversations.js → src/api/web/auth.js} +0 -0
  212. /package/dist/{api/web/files.js → src/api/web/bots.js} +0 -0
  213. /package/dist/{api/web/users.js → src/api/web/chat.js} +0 -0
  214. /package/dist/{api/web/views.js → src/api/web/conversations.js} +0 -0
  215. /package/dist/{utils/typing.js → src/api/web/files.js} +0 -0
  216. /package/dist/{api → src/api}/web/users.d.ts +0 -0
  217. /package/dist/{api → src/api}/web/views.d.ts +0 -0
  218. /package/dist/{builders → src}/blocks/actions.js +0 -0
  219. /package/dist/{builders → src}/blocks/index.d.ts +0 -0
  220. /package/dist/{builders → src}/blocks/index.js +0 -0
  221. /package/dist/{error.d.ts → src/error.d.ts} +0 -0
  222. /package/dist/{error.js → src/error.js} +0 -0
  223. /package/dist/{events → src}/receivers/dummy.js +0 -0
  224. /package/dist/{resources → src/resources}/channel.js +0 -0
  225. /package/dist/{resources → src/resources}/modal.js +0 -0
  226. /package/dist/{resources → src/resources}/user.d.ts +0 -0
  227. /package/dist/{resources → src/resources}/user.js +0 -0
  228. /package/dist/{utils → src/utils}/index.d.ts +0 -0
  229. /package/dist/{utils → src/utils}/index.js +0 -0
  230. /package/dist/{utils → src/utils}/paginate.js +0 -0
  231. /package/dist/{utils → src/utils}/typing.d.ts +0 -0
@@ -0,0 +1,27 @@
1
+ import type { DispatchActionConfig, PlainTextInput } from "@slack/types";
2
+ import { type TextObjectBuilder } from "../objects/text.js";
3
+ import { BlockElementBuilder } from "./base.js";
4
+ type TypedPlainTextInput<ActionID extends string> = PlainTextInput & {
5
+ action_id: ActionID;
6
+ };
7
+ export declare class PlainTextInputBuilder<ActionID extends string> extends BlockElementBuilder<TypedPlainTextInput<ActionID>, ActionID> {
8
+ private _multiline;
9
+ private _default?;
10
+ private _autofocus;
11
+ private _placeholder?;
12
+ private _minLength?;
13
+ private _maxLength?;
14
+ private _triggers?;
15
+ id<ActionID extends string>(actionId: ActionID): PlainTextInputBuilder<ActionID>;
16
+ multiline(multiline?: boolean): this;
17
+ default(value: string): this;
18
+ autofocus(autofocus?: boolean): this;
19
+ placeholder(placeholder: string | TextObjectBuilder<false>): this;
20
+ min(minLength: number): this;
21
+ max(maxLength: number): this;
22
+ triggers(...triggers: DispatchActionConfig["trigger_actions_on"] & {}): this;
23
+ build(): TypedPlainTextInput<ActionID>;
24
+ }
25
+ export declare function plainTextInput(): PlainTextInputBuilder<string>;
26
+ export {};
27
+ //# sourceMappingURL=plain_text_input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain_text_input.d.ts","sourceRoot":"","sources":["../../../../src/blocks/elements/plain_text_input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE5C,KAAK,mBAAmB,CAAC,QAAQ,SAAS,MAAM,IAAI,cAAc,GAAG;IAAE,SAAS,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE5F,qBAAa,qBAAqB,CAAC,QAAQ,SAAS,MAAM,CAAE,SAAQ,mBAAmB,CACtF,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,QAAQ,CACR;IACA,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,YAAY,CAAC,CAA0B;IAC/C,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAC,CAA4C;IAErD,EAAE,CAAC,QAAQ,SAAS,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IAIzF,SAAS,CAAC,SAAS,GAAE,OAAc;IAKnC,OAAO,CAAC,KAAK,EAAE,MAAM;IAKrB,SAAS,CAAC,SAAS,GAAE,OAAc;IAKnC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAK1D,GAAG,CAAC,SAAS,EAAE,MAAM;IAKrB,GAAG,CAAC,SAAS,EAAE,MAAM;IAKrB,QAAQ,CAAC,GAAG,QAAQ,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,EAAE;IAK5D,KAAK,IAAI,mBAAmB,CAAC,QAAQ,CAAC;CAa/C;AAED,wBAAgB,cAAc,kCAE7B"}
@@ -0,0 +1,58 @@
1
+ import { ensureIsTextObjectBuilder } from "../objects/text.js";
2
+ import { BlockElementBuilder } from "./base.js";
3
+ export class PlainTextInputBuilder extends BlockElementBuilder {
4
+ _multiline = false;
5
+ _default;
6
+ _autofocus = false;
7
+ _placeholder;
8
+ _minLength;
9
+ _maxLength;
10
+ _triggers;
11
+ id(actionId) {
12
+ return this._id(actionId);
13
+ }
14
+ multiline(multiline = true) {
15
+ this._multiline = multiline;
16
+ return this;
17
+ }
18
+ default(value) {
19
+ this._default = value;
20
+ return this;
21
+ }
22
+ autofocus(autofocus = true) {
23
+ this._autofocus = autofocus;
24
+ return this;
25
+ }
26
+ placeholder(placeholder) {
27
+ this._placeholder = ensureIsTextObjectBuilder(placeholder).plain();
28
+ return this;
29
+ }
30
+ min(minLength) {
31
+ this._minLength = minLength;
32
+ return this;
33
+ }
34
+ max(maxLength) {
35
+ this._maxLength = maxLength;
36
+ return this;
37
+ }
38
+ triggers(...triggers) {
39
+ this._triggers = triggers;
40
+ return this;
41
+ }
42
+ build() {
43
+ return {
44
+ ...this._build(),
45
+ type: "plain_text_input",
46
+ multiline: this._multiline,
47
+ initial_value: this._default,
48
+ focus_on_load: this._autofocus,
49
+ placeholder: this._placeholder?.build(),
50
+ min_length: this._minLength,
51
+ max_length: this._maxLength,
52
+ dispatch_action_config: this._triggers ? { trigger_actions_on: this._triggers } : undefined,
53
+ };
54
+ }
55
+ }
56
+ export function plainTextInput() {
57
+ return new PlainTextInputBuilder();
58
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -1,19 +1,19 @@
1
1
  import type { InputBlock } from "@slack/types";
2
2
  import { BlockBuilder } from "./base.js";
3
- import { type TextObjectBuilder } from "./objects/text.js";
3
+ import type { BlockElementBuilder } from "./elements/base.js";
4
4
  import type { PlainTextInputBuilder } from "./elements/plain_text_input.js";
5
- import type { InteractiveElementBuilder } from "./elements/base.js";
5
+ import { type TextObjectBuilder } from "./objects/text.js";
6
6
  type InputElementBuilder = PlainTextInputBuilder<string>;
7
7
  type TypedInputBlock<Element extends InputElementBuilder, BlockID extends string> = InputBlock & {
8
8
  block_id: BlockID;
9
- element: Element extends InteractiveElementBuilder<infer Output> ? Output : never;
9
+ element: Element extends BlockElementBuilder<infer Output> ? Output : never;
10
10
  };
11
- export declare class InputBlockBuilder<Element extends InputElementBuilder, HasLabel extends boolean = false, BlockID extends string = string> extends BlockBuilder<TypedInputBlock<Element, BlockID>, BlockID> {
11
+ export declare class InputBlockBuilder<Element extends InputElementBuilder, HasLabel extends boolean = false, BlockID extends string = string> extends BlockBuilder<TypedInputBlock<Element, BlockID>, BlockID, HasLabel> {
12
12
  private _element;
13
13
  private _label?;
14
14
  constructor(_element: Element);
15
15
  id<BlockID extends string>(blockId: BlockID): InputBlockBuilder<Element, HasLabel, BlockID>;
16
- label(text: string | TextObjectBuilder<false>): InputBlockBuilder<Element, true>;
16
+ label(text: string | TextObjectBuilder<false>): InputBlockBuilder<Element, true, BlockID>;
17
17
  build(this: InputBlockBuilder<Element, true, BlockID>): TypedInputBlock<Element, BlockID>;
18
18
  }
19
19
  export declare function input<Element extends InputElementBuilder>(element: Element): InputBlockBuilder<Element, false, string>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/blocks/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElF,KAAK,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;AAExD,KAAK,eAAe,CAAC,OAAO,SAAS,mBAAmB,EAAE,OAAO,SAAS,MAAM,IAAI,UAAU,GAAG;IAChG,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,SAAS,mBAAmB,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;CAC3E,CAAA;AAED,qBAAa,iBAAiB,CAC7B,OAAO,SAAS,mBAAmB,EACnC,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9B,SAAQ,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC;IAG/D,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,MAAM,CAAC,CAA0B;gBAErB,QAAQ,EAAE,OAAO;IAI5B,EAAE,CAAC,OAAO,SAAS,MAAM,EACjC,OAAO,EAAE,OAAO,GACd,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IAIhD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;IAKhF,KAAK,CACb,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAC7C,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;CAUpC;AAED,wBAAgB,KAAK,CAAC,OAAO,SAAS,mBAAmB,EAAE,OAAO,EAAE,OAAO,6CAE1E"}
@@ -1,6 +1,6 @@
1
+ import { SlackError } from "../error.js";
1
2
  import { BlockBuilder } from "./base.js";
2
3
  import { ensureIsTextObjectBuilder } from "./objects/text.js";
3
- import { SlackError } from "../../error.js";
4
4
  export class InputBlockBuilder extends BlockBuilder {
5
5
  _element;
6
6
  _label;
@@ -0,0 +1,34 @@
1
+ import type { ColorScheme, ConfirmationDialog } from "@slack/types";
2
+ import { Builder } from "../base.js";
3
+ import { type TextObjectBuilder } from "./text.js";
4
+ export declare class ConfirmBuilder<HasTitle extends boolean = false, HasText extends boolean = false, HasConfirm extends boolean = false, HasDeny extends boolean = false> extends Builder<ConfirmationDialog> {
5
+ private _title?;
6
+ private _text?;
7
+ private _confirm?;
8
+ private _deny?;
9
+ private _style?;
10
+ private _brand?;
11
+ constructor(_title?: TextObjectBuilder<false> | undefined, _text?: TextObjectBuilder | undefined, _confirm?: TextObjectBuilder<false> | undefined, _deny?: TextObjectBuilder<false> | undefined, _style?: ColorScheme | undefined);
12
+ title(title: string | TextObjectBuilder<false>): ConfirmBuilder<true, HasText, HasConfirm, HasDeny>;
13
+ text(text: string | TextObjectBuilder): ConfirmBuilder<HasTitle, true, HasConfirm, HasDeny>;
14
+ confirm(confirm: string | TextObjectBuilder<false>): ConfirmBuilder<HasTitle, HasText, true, HasDeny>;
15
+ deny(deny: string | TextObjectBuilder<false>): ConfirmBuilder<HasTitle, HasText, HasConfirm, true>;
16
+ style(style: ColorScheme): this;
17
+ build(this: ConfirmBuilder<true, true, true, true>): ConfirmationDialog;
18
+ }
19
+ export declare function confirm<Fields extends {
20
+ title?: string | TextObjectBuilder<false>;
21
+ text?: string | TextObjectBuilder;
22
+ confirm?: string | TextObjectBuilder<false>;
23
+ deny?: string | TextObjectBuilder<false>;
24
+ style?: ColorScheme;
25
+ } = {}>(fields?: Fields): ConfirmBuilder<Fields extends {
26
+ title: string | TextObjectBuilder<false>;
27
+ } ? true : false, Fields extends {
28
+ text: string | TextObjectBuilder;
29
+ } ? true : false, Fields extends {
30
+ confirm: string | TextObjectBuilder<false>;
31
+ } ? true : false, Fields extends {
32
+ deny: string | TextObjectBuilder<false>;
33
+ } ? true : false>;
34
+ //# sourceMappingURL=confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../../../src/blocks/objects/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAG1E,qBAAa,cAAc,CAC1B,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,OAAO,SAAS,OAAO,GAAG,KAAK,EAC/B,UAAU,SAAS,OAAO,GAAG,KAAK,EAClC,OAAO,SAAS,OAAO,GAAG,KAAK,CAC9B,SAAQ,OAAO,CAAC,kBAAkB,CAAC;IAInC,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,MAAM,CAAC;IAPhB,OAAO,CAAC,MAAM,CAAC,CAA0C;gBAGhD,MAAM,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAA,EACjC,KAAK,CAAC,EAAE,iBAAiB,YAAA,EACzB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAA,EACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAA,EAChC,MAAM,CAAC,EAAE,WAAW,YAAA;IAK7B,KAAK,CACJ,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GACtC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;IAKrD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;IAK3F,OAAO,CACN,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GACxC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;IAKnD,IAAI,CACH,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GACrC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC;IAKtD,KAAK,CAAC,KAAK,EAAE,WAAW;IAKf,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,kBAAkB;CAYhF;AAED,wBAAgB,OAAO,CACtB,MAAM,SAAS;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAA;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,WAAW,CAAA;CACnB,GAAG,EAAE,EAEN,MAAM,CAAC,EAAE,MAAM,GACb,cAAc,CAChB,MAAM,SAAS;IAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,EAC1E,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,EAClE,MAAM,SAAS;IAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,EAC5E,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,CACzE,CAQA"}
@@ -0,0 +1,54 @@
1
+ import { Builder } from "../base.js";
2
+ import { ensureIsTextObjectBuilder } from "./text.js";
3
+ import { SlackError } from "../../error.js";
4
+ export class ConfirmBuilder extends Builder {
5
+ _title;
6
+ _text;
7
+ _confirm;
8
+ _deny;
9
+ _style;
10
+ _brand;
11
+ constructor(_title, _text, _confirm, _deny, _style) {
12
+ super();
13
+ this._title = _title;
14
+ this._text = _text;
15
+ this._confirm = _confirm;
16
+ this._deny = _deny;
17
+ this._style = _style;
18
+ }
19
+ title(title) {
20
+ this._title = ensureIsTextObjectBuilder(title).plain();
21
+ return this;
22
+ }
23
+ text(text) {
24
+ this._text = ensureIsTextObjectBuilder(text);
25
+ return this;
26
+ }
27
+ confirm(confirm) {
28
+ this._confirm = ensureIsTextObjectBuilder(confirm).plain();
29
+ return this;
30
+ }
31
+ deny(deny) {
32
+ this._deny = ensureIsTextObjectBuilder(deny).plain();
33
+ return this;
34
+ }
35
+ style(style) {
36
+ this._style = style;
37
+ return this;
38
+ }
39
+ build() {
40
+ if (!this._title || !this._text || !this._confirm || !this._deny) {
41
+ throw new SlackError("title, text, confirm, or deny missing for confirmation dialog");
42
+ }
43
+ return {
44
+ title: this._title.build(),
45
+ text: this._text.build(),
46
+ confirm: this._confirm.build(),
47
+ deny: this._deny.build(),
48
+ style: this._style,
49
+ };
50
+ }
51
+ }
52
+ export function confirm(fields) {
53
+ return new ConfirmBuilder(ensureIsTextObjectBuilder(fields?.title)?.plain(), ensureIsTextObjectBuilder(fields?.text), ensureIsTextObjectBuilder(fields?.confirm)?.plain(), ensureIsTextObjectBuilder(fields?.deny)?.plain(), fields?.style);
54
+ }
@@ -1,2 +1,4 @@
1
+ export { confirm } from "./confirm.js";
2
+ export { option } from "./option.js";
1
3
  export { mrkdwn, plain, text } from "./text.js";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { confirm } from "./confirm.js";
2
+ export { option } from "./option.js";
3
+ export { mrkdwn, plain, text } from "./text.js";
@@ -0,0 +1,17 @@
1
+ import type { PlainTextOption } from "@slack/types";
2
+ import { Builder } from "../base.js";
3
+ import { type TextObjectBuilder } from "./text.js";
4
+ type TypedPlainTextOption<Value extends string | undefined> = PlainTextOption & {
5
+ value: Value;
6
+ };
7
+ export declare class OptionObjectBuilder<Value extends string | undefined = string | undefined> extends Builder<TypedPlainTextOption<Value>> {
8
+ private _text;
9
+ private _value;
10
+ constructor(_text: TextObjectBuilder<false>, _value: Value);
11
+ value<Value extends string>(value: Value): OptionObjectBuilder<Value>;
12
+ build(): TypedPlainTextOption<Value>;
13
+ }
14
+ export declare function option(text: string | TextObjectBuilder<false>): OptionObjectBuilder<undefined>;
15
+ export declare function option<Value extends string>(text: string | TextObjectBuilder<false>, value: Value): OptionObjectBuilder<Value>;
16
+ export {};
17
+ //# sourceMappingURL=option.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../../../src/blocks/objects/option.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAE1E,KAAK,oBAAoB,CAAC,KAAK,SAAS,MAAM,GAAG,SAAS,IAAI,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAEhG,qBAAa,mBAAmB,CAC/B,KAAK,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CACpD,SAAQ,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;gBADN,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,KAAK;IAKtB,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;IAK5D,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC;CAG7C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;AAC/F,wBAAgB,MAAM,CAAC,KAAK,SAAS,MAAM,EAC1C,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,EACvC,KAAK,EAAE,KAAK,GACV,mBAAmB,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { Builder } from "../base.js";
2
+ import { ensureIsTextObjectBuilder } from "./text.js";
3
+ export class OptionObjectBuilder extends Builder {
4
+ _text;
5
+ _value;
6
+ constructor(_text, _value) {
7
+ super();
8
+ this._text = _text;
9
+ this._value = _value;
10
+ }
11
+ value(value) {
12
+ this._value = value;
13
+ return this;
14
+ }
15
+ build() {
16
+ return { text: this._text.build(), value: this._value };
17
+ }
18
+ }
19
+ export function option(text, value) {
20
+ return new OptionObjectBuilder(ensureIsTextObjectBuilder(text).plain(), value);
21
+ }
@@ -19,4 +19,7 @@ export declare function plain(text: string): TextObjectBuilder<false>;
19
19
  export declare function ensureIsTextObjectBuilder(text: string): TextObjectBuilder<true>;
20
20
  export declare function ensureIsTextObjectBuilder<T extends TextObjectBuilder>(text: T): T;
21
21
  export declare function ensureIsTextObjectBuilder<T extends TextObjectBuilder>(text: string | T): TextObjectBuilder<true> | T;
22
+ export declare function ensureIsTextObjectBuilder(text?: string): TextObjectBuilder<true> | undefined;
23
+ export declare function ensureIsTextObjectBuilder<T extends TextObjectBuilder>(text?: T): T | undefined;
24
+ export declare function ensureIsTextObjectBuilder<T extends TextObjectBuilder>(text?: string | T): TextObjectBuilder<true> | T | undefined;
22
25
  //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/blocks/objects/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,qBAAa,iBAAiB,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,OAAO,CAC/E,MAAM,SAAS,IAAI,GAAG,aAAa,GAAG,gBAAgB,CACtD;IAKC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IALhB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;gBAGhB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM;IAKxB,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAE,OAAc;IAK3D,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAE,OAAc;IAKhE,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,MAAM,SAAS,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAMhF,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAC;IAIxB,KAAK,IAAI,MAAM,SAAS,IAAI,GAAG,aAAa,GAAG,gBAAgB;CAexE;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAE5D;AAED,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAA;AAEzB,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAE5D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAChF,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,iBAAiB,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AAClF,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,iBAAiB,EACpE,IAAI,EAAE,MAAM,GAAG,CAAC,GACd,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9B,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;AAC7F,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;AAC/F,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,iBAAiB,EACpE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,GACf,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA"}
@@ -49,5 +49,9 @@ export function plain(text) {
49
49
  return new TextObjectBuilder(text, false);
50
50
  }
51
51
  export function ensureIsTextObjectBuilder(text) {
52
- return typeof text === "string" ? new TextObjectBuilder(text, true) : text;
52
+ return text === undefined
53
+ ? undefined
54
+ : typeof text === "string"
55
+ ? new TextObjectBuilder(text, true)
56
+ : text;
53
57
  }
@@ -0,0 +1,42 @@
1
+ import { BlockBuilder } from "./base.js";
2
+ import type { SectionBlock } from "@slack/types";
3
+ import { type TextObjectBuilder } from "./objects/text.js";
4
+ import type { OverflowBuilder } from "./elements/overflow.js";
5
+ import type { ButtonBuilder } from "./elements/button.js";
6
+ import type { BlockElementBuilder } from "./elements/base.js";
7
+ type SectionAccessoryBuilder = ButtonBuilder | OverflowBuilder<any>;
8
+ type TypedSectionBlock<Mrkdwn extends boolean | undefined = boolean | undefined, Accessory extends SectionAccessoryBuilder | undefined = undefined, BlockID extends string = string> = SectionBlock & {
9
+ block_id: BlockID;
10
+ } & (Mrkdwn extends true ? {
11
+ text: {
12
+ type: "mrkdwn";
13
+ };
14
+ } : Mrkdwn extends false ? {
15
+ text: {
16
+ type: "plain_text";
17
+ };
18
+ } : {
19
+ text?: never;
20
+ }) & (Accessory extends BlockElementBuilder<infer Output> ? {
21
+ accessory: Output;
22
+ } : {
23
+ accessory?: never;
24
+ });
25
+ export declare class SectionBlockBuilder<Mrkdwn extends boolean | undefined = boolean | undefined, HasFields extends boolean = false, Accessory extends SectionAccessoryBuilder | undefined = undefined, BlockID extends string = string> extends BlockBuilder<TypedSectionBlock<Mrkdwn, Accessory, BlockID>, BlockID, HasFields extends true ? true : Mrkdwn extends boolean ? true : false> {
26
+ private _text?;
27
+ private _accessory;
28
+ private _expand?;
29
+ private _fields?;
30
+ constructor(_text?: TextObjectBuilder<Mrkdwn extends boolean ? Mrkdwn : boolean> | undefined);
31
+ id<BlockID extends string>(blockId: BlockID): SectionBlockBuilder<Mrkdwn, HasFields, Accessory, BlockID>;
32
+ accessory<Accessory extends SectionAccessoryBuilder>(accessory: Accessory): SectionBlockBuilder<Mrkdwn, HasFields, Accessory, BlockID>;
33
+ expand(expand: boolean): this;
34
+ fields(...fields: (string | TextObjectBuilder)[]): SectionBlockBuilder<Mrkdwn, true, Accessory, BlockID>;
35
+ build(): TypedSectionBlock<Mrkdwn, Accessory, BlockID>;
36
+ }
37
+ export declare function section(): SectionBlockBuilder<undefined>;
38
+ export declare function section(text: string): SectionBlockBuilder<true>;
39
+ export declare function section<Mrkdwn extends boolean>(text: TextObjectBuilder<Mrkdwn>): SectionBlockBuilder<Mrkdwn>;
40
+ export declare function section(field0: string | TextObjectBuilder, ...fields: (string | TextObjectBuilder)[]): SectionBlockBuilder<undefined, true>;
41
+ export {};
42
+ //# sourceMappingURL=section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../../src/blocks/section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE1D,KAAK,uBAAuB,GAAG,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;AAEnE,KAAK,iBAAiB,CACrB,MAAM,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EACxD,SAAS,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,EACjE,OAAO,SAAS,MAAM,GAAG,MAAM,IAC5B,YAAY,GAAG;IAClB,QAAQ,EAAE,OAAO,CAAA;CACjB,GAAG,CAAC,MAAM,SAAS,IAAI,GACpB;IAAE,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAA;CAAE,GAC5B,MAAM,SAAS,KAAK,GACnB;IAAE,IAAI,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAA;CAAE,GAChC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GACrB,CAAC,SAAS,SAAS,mBAAmB,CAAC,MAAM,MAAM,CAAC,GACjD;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAE1B,qBAAa,mBAAmB,CAC/B,MAAM,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EACxD,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,SAAS,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,EACjE,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9B,SAAQ,YAAY,CACrB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAC7C,OAAO,EACP,SAAS,SAAS,IAAI,GAAG,IAAI,GAAG,MAAM,SAAS,OAAO,GAAG,IAAI,GAAG,KAAK,CACrE;IAKY,OAAO,CAAC,KAAK,CAAC;IAJ1B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAqB;gBAEjB,KAAK,CAAC,EAAE,iBAAiB,CAAC,MAAM,SAAS,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,YAAA;IAI/E,EAAE,CAAC,OAAO,SAAS,MAAM,EACjC,OAAO,EAAE,OAAO,GACd,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAI7D,SAAS,CAAC,SAAS,SAAS,uBAAuB,EAClD,SAAS,EAAE,SAAS,GAClB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAK7D,MAAM,CAAC,MAAM,EAAE,OAAO;IAKtB,MAAM,CACL,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,GACvC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;IAM/C,KAAK,IAAI,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAU/D;AAED,wBAAgB,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;AACzD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAChE,wBAAgB,OAAO,CAAC,MAAM,SAAS,OAAO,EAC7C,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAC9B,wBAAgB,OAAO,CACtB,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAClC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,GACvC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { BlockBuilder } from "./base.js";
2
+ import { ensureIsTextObjectBuilder } from "./objects/text.js";
3
+ export class SectionBlockBuilder extends BlockBuilder {
4
+ _text;
5
+ _accessory = undefined;
6
+ _expand;
7
+ _fields;
8
+ constructor(_text) {
9
+ super();
10
+ this._text = _text;
11
+ }
12
+ id(blockId) {
13
+ return this._id(blockId);
14
+ }
15
+ accessory(accessory) {
16
+ this._accessory = accessory;
17
+ return this;
18
+ }
19
+ expand(expand) {
20
+ this._expand = expand;
21
+ return this;
22
+ }
23
+ fields(...fields) {
24
+ if (!this._fields)
25
+ this._fields = [];
26
+ this._fields.push(...fields.map((f) => ensureIsTextObjectBuilder(f)));
27
+ return this;
28
+ }
29
+ build() {
30
+ return {
31
+ ...this._build(),
32
+ type: "section",
33
+ fields: this._fields ? this._fields.map((f) => f.build()) : undefined,
34
+ text: this._text?.build(),
35
+ accessory: this._accessory?.build(),
36
+ expand: this._expand,
37
+ };
38
+ }
39
+ }
40
+ export function section(...texts) {
41
+ if (texts.length === 0) {
42
+ return new SectionBlockBuilder();
43
+ }
44
+ if (texts.length === 1) {
45
+ return new SectionBlockBuilder(ensureIsTextObjectBuilder(texts[0]));
46
+ }
47
+ return new SectionBlockBuilder().fields(...texts);
48
+ }
@@ -0,0 +1,56 @@
1
+ import type { ActionsBlock, InputBlock, KnownBlock, SectionBlock } from "@slack/types";
2
+ import type { StateValue } from "../../api/types/value.js";
3
+ import type { DistributivePick } from "../../utils/typing.js";
4
+ export type ExtractValues<Blocks extends {
5
+ block_id?: string;
6
+ }[]> = {
7
+ [Block in Blocks[number] as Block["block_id"] extends string ? Block["block_id"] : never]: ExtractBlockValues<Block>;
8
+ };
9
+ export type ExtractBlockValues<Block> = Block extends {
10
+ element: {
11
+ type: string;
12
+ action_id: string;
13
+ };
14
+ } ? {
15
+ [T in Block["element"]["action_id"]]: Extract<StateValue, {
16
+ type: Block["element"]["type"];
17
+ }>;
18
+ } : Block extends {
19
+ elements: {
20
+ type: string;
21
+ action_id?: string;
22
+ }[];
23
+ } ? {
24
+ [Action in Block["elements"][number] as Action["action_id"] extends string ? Action["action_id"] : never]: Extract<StateValue, {
25
+ type: Action["type"];
26
+ }>;
27
+ } : never;
28
+ export type ExtractActions<Blocks extends KnownBlock[]> = {
29
+ [K in keyof Blocks]: ExtractBlockActions<Blocks[K]>;
30
+ }[number][number];
31
+ export type ExtractBlockActions<Block extends KnownBlock> = PickActionFields<(Block extends SectionBlock ? Extract<Block["accessory"], {
32
+ action_id?: string;
33
+ }>[] : Block extends InputBlock ? Extract<Block["element"], {
34
+ action_id?: string;
35
+ }>[] : Block extends ActionsBlock ? Extract<Block["elements"][number], {
36
+ action_id?: string;
37
+ }>[] : [
38
+ ])[number]>[];
39
+ type PickActionFields<Action extends {
40
+ type: string;
41
+ action_id?: string;
42
+ }> = Action extends unknown ? DistributivePick<Action, "type" | "action_id"> & (Action extends {
43
+ type: "overflow";
44
+ options: infer Options extends unknown[];
45
+ } ? {
46
+ selected_option: Options[number];
47
+ } : {}) : never;
48
+ export type ActionsToPrefixedID<Action extends {
49
+ type: string;
50
+ action_id?: string;
51
+ }> = Action extends {
52
+ type: string;
53
+ action_id: string;
54
+ } ? `${Action["type"]}.${Action["action_id"]}` | Action["action_id"] : string;
55
+ export {};
56
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/blocks/utils/extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,14 +1,17 @@
1
1
  import EventEmitter from "events";
2
2
  import { type SlackAPIMethod, type SlackAPIParams, type SlackAPIResponse } from "./api/index.js";
3
+ import type { AllEvents, AllEventTypes, EventWrapper, SlackEventMap } from "./api/events/index.js";
4
+ import type { MessageEvent } from "./api/events/events.js";
3
5
  import type { BlockAction, BlockActionMap, BlockActions, BlockActionTypes } from "./api/interactive/block_actions.js";
4
- import { type SocketEventsReceiverOptions } from "./events/receivers/socket.js";
5
- import type { AllEvents, AllEventTypes, EventWrapper, SlackEventMap } from "./events/types/index.js";
6
- import type { MessageEvent } from "./events/types/events.js";
6
+ import type { ViewSubmission } from "./api/interactive/view_submission.js";
7
+ import type { AnyMessage, NormalMessage } from "./api/types/message.js";
8
+ import { type SocketEventsReceiverOptions } from "./receivers/socket.js";
7
9
  import { Action, type ActionInstance } from "./resources/action.js";
8
- import { ChannelRef } from "./resources/channel.js";
10
+ import { Channel, ChannelRef } from "./resources/channel.js";
9
11
  import { type MessageInstance } from "./resources/message.js";
10
12
  import type { DistributiveOmit } from "./utils/typing.js";
11
- import type { ViewSubmission } from "./api/interactive/view_submission.js";
13
+ import { type SlashCommandInstance } from "./resources/slash.js";
14
+ import type { IM, MPIM, PrivateChannel, PublicChannel } from "./api/types/conversation.js";
12
15
  type ReceiverOptions = ({
13
16
  type: "socket";
14
17
  } & DistributiveOmit<SocketEventsReceiverOptions, "client">) | {
@@ -31,6 +34,12 @@ export type EventCallbackData<Event extends AllEvents> = {
31
34
  };
32
35
  export type EventCallback<Event extends AllEvents> = (data: EventCallbackData<Event>) => unknown;
33
36
  export type BlockActionCallback<Type extends BlockAction> = (data: Action<Type>) => unknown;
37
+ type ChannelTypeMap = {
38
+ public_channel: PublicChannel;
39
+ private_channel: PrivateChannel;
40
+ mpim: MPIM;
41
+ im: IM;
42
+ };
34
43
  export declare class App extends EventEmitter<AppEventMap> {
35
44
  #private;
36
45
  constructor({ token, receiver }?: AppOptions);
@@ -71,6 +80,7 @@ export declare class App extends EventEmitter<AppEventMap> {
71
80
  * @returns A channel reference object
72
81
  */
73
82
  channel(id: string): ChannelRef;
83
+ channels<Types extends ("public_channel" | "private_channel" | "mpim" | "im")[]>(...types: Types): AsyncGenerator<Channel<ChannelTypeMap[Types[number]]>>;
74
84
  /**
75
85
  * Makes a Slack Web API request.
76
86
  *
@@ -78,9 +88,9 @@ export declare class App extends EventEmitter<AppEventMap> {
78
88
  * @param params The parameters for the method
79
89
  * @returns The response from the API call
80
90
  */
81
- request<Method extends SlackAPIMethod>(method: Method, params: SlackAPIParams<Method>): Promise<SlackAPIResponse<Method> & {
91
+ request<Method extends SlackAPIMethod>(method: Method, params: SlackAPIParams<Method>): Promise<Extract<SlackAPIResponse<Method>, {
82
92
  ok: true;
83
- }>;
93
+ }>>;
84
94
  }
85
95
  type AppEventMap = {
86
96
  event: [
@@ -98,6 +108,12 @@ type AppEventMap = {
98
108
  message: [
99
109
  MessageInstance
100
110
  ];
111
+ "message:normal": [
112
+ MessageInstance<NormalMessage>
113
+ ];
114
+ slash: [
115
+ SlashCommandInstance
116
+ ];
101
117
  } & {
102
118
  [K in AllEventTypes as `event:${K}`]: [
103
119
  {
@@ -125,6 +141,26 @@ type AppEventMap = {
125
141
  [K in `message#${string}`]: [
126
142
  MessageInstance
127
143
  ];
144
+ } & {
145
+ [K in Extract<AnyMessage, {
146
+ subtype: string;
147
+ }> as `message:${K["subtype"]}`]: [
148
+ MessageInstance<K>
149
+ ];
150
+ } & {
151
+ [K in Extract<AnyMessage, {
152
+ subtype: string;
153
+ }> as `message:${K["subtype"]}#${string}`]: [
154
+ MessageInstance<K>
155
+ ];
156
+ } & {
157
+ [K in `message:normal#${string}`]: [
158
+ MessageInstance<NormalMessage>
159
+ ];
160
+ } & {
161
+ [K in `/${string}`]: [
162
+ SlashCommandInstance
163
+ ];
128
164
  };
129
165
  export {};
130
166
  //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}