slack.ts 0.0.4 → 0.0.6

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 (87) hide show
  1. package/README.md +2 -0
  2. package/dist/api/index.d.ts +9 -0
  3. package/dist/api/index.d.ts.map +1 -1
  4. package/dist/api/index.js +1 -0
  5. package/dist/api/interactive/block_actions.d.ts +4 -22
  6. package/dist/api/interactive/block_actions.d.ts.map +1 -1
  7. package/dist/api/interactive/common.d.ts +23 -0
  8. package/dist/api/interactive/common.d.ts.map +1 -0
  9. package/dist/api/interactive/common.js +1 -0
  10. package/dist/api/interactive/view_submission.d.ts +8 -0
  11. package/dist/api/interactive/view_submission.d.ts.map +1 -0
  12. package/dist/api/interactive/view_submission.js +1 -0
  13. package/dist/api/types/value.d.ts +6 -0
  14. package/dist/api/types/value.d.ts.map +1 -0
  15. package/dist/api/types/value.js +1 -0
  16. package/dist/api/types/view.d.ts +26 -0
  17. package/dist/api/types/view.d.ts.map +1 -0
  18. package/dist/api/types/view.js +1 -0
  19. package/dist/api/web/views.d.ts +17 -0
  20. package/dist/api/web/views.d.ts.map +1 -0
  21. package/dist/api/web/views.js +1 -0
  22. package/dist/builders/blocks/actions.d.ts +24 -0
  23. package/dist/builders/blocks/actions.d.ts.map +1 -0
  24. package/dist/builders/blocks/actions.js +25 -0
  25. package/dist/builders/blocks/base.d.ts +18 -0
  26. package/dist/builders/blocks/base.d.ts.map +1 -0
  27. package/dist/builders/blocks/base.js +19 -0
  28. package/dist/builders/blocks/elements/base.d.ts +9 -0
  29. package/dist/builders/blocks/elements/base.d.ts.map +1 -0
  30. package/dist/builders/blocks/elements/base.js +12 -0
  31. package/dist/builders/blocks/elements/button.d.ts +23 -0
  32. package/dist/builders/blocks/elements/button.d.ts.map +1 -0
  33. package/dist/builders/blocks/elements/button.js +46 -0
  34. package/dist/builders/blocks/elements/index.d.ts +3 -0
  35. package/dist/builders/blocks/elements/index.d.ts.map +1 -0
  36. package/dist/builders/blocks/elements/index.js +2 -0
  37. package/dist/builders/blocks/elements/plain_text_input.d.ts +12 -0
  38. package/dist/builders/blocks/elements/plain_text_input.d.ts.map +1 -0
  39. package/dist/builders/blocks/elements/plain_text_input.js +12 -0
  40. package/dist/builders/blocks/index.d.ts +7 -0
  41. package/dist/builders/blocks/index.d.ts.map +1 -0
  42. package/dist/builders/blocks/index.js +6 -0
  43. package/dist/builders/blocks/input.d.ts +21 -0
  44. package/dist/builders/blocks/input.d.ts.map +1 -0
  45. package/dist/builders/blocks/input.js +31 -0
  46. package/dist/builders/blocks/objects/index.d.ts +2 -0
  47. package/dist/builders/blocks/objects/index.d.ts.map +1 -0
  48. package/dist/builders/blocks/objects/index.js +1 -0
  49. package/dist/builders/blocks/objects/text.d.ts +22 -0
  50. package/dist/builders/blocks/objects/text.d.ts.map +1 -0
  51. package/dist/builders/blocks/objects/text.js +53 -0
  52. package/dist/builders/blocks/section.d.ts +24 -0
  53. package/dist/builders/blocks/section.d.ts.map +1 -0
  54. package/dist/builders/blocks/section.js +22 -0
  55. package/dist/builders/index.d.ts +2 -0
  56. package/dist/builders/index.d.ts.map +1 -0
  57. package/dist/builders/index.js +1 -0
  58. package/dist/client.d.ts +26 -11
  59. package/dist/client.d.ts.map +1 -1
  60. package/dist/client.js +34 -18
  61. package/dist/events/receivers/socket.js +1 -1
  62. package/dist/events/types/index.d.ts +4 -0
  63. package/dist/events/types/index.d.ts.map +1 -1
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +1 -0
  67. package/dist/resources/channel.d.ts +6 -2
  68. package/dist/resources/channel.d.ts.map +1 -1
  69. package/dist/resources/channel.js +4 -22
  70. package/dist/resources/message.d.ts +3 -3
  71. package/dist/resources/message.d.ts.map +1 -1
  72. package/dist/resources/message.js +5 -23
  73. package/dist/resources/modal.d.ts +21 -0
  74. package/dist/resources/modal.d.ts.map +1 -0
  75. package/dist/resources/modal.js +54 -0
  76. package/dist/resources/submission.d.ts +11 -0
  77. package/dist/resources/submission.d.ts.map +1 -0
  78. package/dist/resources/submission.js +14 -0
  79. package/dist/utils/paginate.d.ts +10 -0
  80. package/dist/utils/paginate.d.ts.map +1 -0
  81. package/dist/utils/paginate.js +22 -0
  82. package/dist/utils/respond.d.ts +6 -1
  83. package/dist/utils/respond.d.ts.map +1 -1
  84. package/dist/utils/respond.js +8 -0
  85. package/dist/utils/typing.d.ts +2 -0
  86. package/dist/utils/typing.d.ts.map +1 -1
  87. package/package.json +1 -1
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  An opinionated Slack API library with full TypeScript support.
4
4
 
5
+ **NOTE**: This library is still in active development! Any version update (even patch, sorry) may introduce breaking changes! Use at your own risk!
6
+
5
7
  ## Usage
6
8
 
7
9
  You can install this package from npm with
@@ -1,9 +1,11 @@
1
+ import type { CursorPaginationResponse } from "./types/api.js";
1
2
  import type { AppsConnectionsOpenParams, AppsConnectionsOpenResponse } from "./web/apps.js";
2
3
  import type { AuthTestParams, AuthTestResponse } from "./web/auth.js";
3
4
  import type { ChatPostMessageParams, ChatPostMessageResponse } from "./web/chat.js";
4
5
  import type { ConversationsHistoryParams, ConversationsHistoryResponse, ConversationsInfoParams, ConversationsInfoResponse, ConversationsRepliesParams, ConversationsRepliesResponse } from "./web/conversations.js";
5
6
  import type { FilesCompleteUploadExternalParams, FilesCompleteUploadExternalResponse, FilesGetUploadURLExternalParams, FilesGetUploadURLExternalResponse } from "./web/files.js";
6
7
  import type { UsersInfoParams, UsersInfoResponse } from "./web/users.js";
8
+ import type { ViewsOpenParams, ViewsOpenResponse } from "./web/views.js";
7
9
  export interface SlackWebAPIMap {
8
10
  "apps.connections.open": {
9
11
  params: AppsConnectionsOpenParams;
@@ -41,8 +43,15 @@ export interface SlackWebAPIMap {
41
43
  params: UsersInfoParams;
42
44
  response: UsersInfoResponse;
43
45
  };
46
+ "views.open": {
47
+ params: ViewsOpenParams;
48
+ response: ViewsOpenResponse;
49
+ };
44
50
  }
45
51
  export type SlackAPIMethod = keyof SlackWebAPIMap;
52
+ export type SlackPaginatingAPIMethod = {
53
+ [K in SlackAPIMethod]: SlackWebAPIMap[K]["response"] extends CursorPaginationResponse ? K : never;
54
+ }[SlackAPIMethod];
46
55
  export type SlackAPIParams<Method extends SlackAPIMethod> = SlackWebAPIMap[Method]["params"] & {
47
56
  token?: string;
48
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAChF,OAAO,KAAK,EACX,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACX,iCAAiC,EACjC,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,EACjC,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,cAAc;IAC9B,uBAAuB,EAAE;QACxB,MAAM,EAAE,yBAAyB,CAAA;QACjC,QAAQ,EAAE,2BAA2B,CAAA;KACrC,CAAA;IACD,WAAW,EAAE;QACZ,MAAM,EAAE,cAAc,CAAA;QACtB,QAAQ,EAAE,gBAAgB,CAAA;KAC1B,CAAA;IACD,kBAAkB,EAAE;QACnB,MAAM,EAAE,qBAAqB,CAAA;QAC7B,QAAQ,EAAE,uBAAuB,CAAA;KACjC,CAAA;IACD,oBAAoB,EAAE;QACrB,MAAM,EAAE,uBAAuB,CAAA;QAC/B,QAAQ,EAAE,yBAAyB,CAAA;KACnC,CAAA;IACD,uBAAuB,EAAE;QACxB,MAAM,EAAE,0BAA0B,CAAA;QAClC,QAAQ,EAAE,4BAA4B,CAAA;KACtC,CAAA;IACD,uBAAuB,EAAE;QACxB,MAAM,EAAE,0BAA0B,CAAA;QAClC,QAAQ,EAAE,4BAA4B,CAAA;KACtC,CAAA;IACD,8BAA8B,EAAE;QAC/B,MAAM,EAAE,iCAAiC,CAAA;QACzC,QAAQ,EAAE,mCAAmC,CAAA;KAC7C,CAAA;IACD,4BAA4B,EAAE;QAC7B,MAAM,EAAE,+BAA+B,CAAA;QACvC,QAAQ,EAAE,iCAAiC,CAAA;KAC3C,CAAA;IACD,YAAY,EAAE;QACb,MAAM,EAAE,eAAe,CAAA;QACvB,QAAQ,EAAE,iBAAiB,CAAA;KAC3B,CAAA;CACD;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,cAAc,CAAA;AACjD,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,cAAc,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AACD,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,cAAc,IACvD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5B,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;AAEtD,eAAO,MAAM,YAAY,EAAE,cAAc,EAIxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAChF,OAAO,KAAK,EACX,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACX,iCAAiC,EACjC,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,EACjC,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,cAAc;IAC9B,uBAAuB,EAAE;QACxB,MAAM,EAAE,yBAAyB,CAAA;QACjC,QAAQ,EAAE,2BAA2B,CAAA;KACrC,CAAA;IACD,WAAW,EAAE;QACZ,MAAM,EAAE,cAAc,CAAA;QACtB,QAAQ,EAAE,gBAAgB,CAAA;KAC1B,CAAA;IACD,kBAAkB,EAAE;QACnB,MAAM,EAAE,qBAAqB,CAAA;QAC7B,QAAQ,EAAE,uBAAuB,CAAA;KACjC,CAAA;IACD,oBAAoB,EAAE;QACrB,MAAM,EAAE,uBAAuB,CAAA;QAC/B,QAAQ,EAAE,yBAAyB,CAAA;KACnC,CAAA;IACD,uBAAuB,EAAE;QACxB,MAAM,EAAE,0BAA0B,CAAA;QAClC,QAAQ,EAAE,4BAA4B,CAAA;KACtC,CAAA;IACD,uBAAuB,EAAE;QACxB,MAAM,EAAE,0BAA0B,CAAA;QAClC,QAAQ,EAAE,4BAA4B,CAAA;KACtC,CAAA;IACD,8BAA8B,EAAE;QAC/B,MAAM,EAAE,iCAAiC,CAAA;QACzC,QAAQ,EAAE,mCAAmC,CAAA;KAC7C,CAAA;IACD,4BAA4B,EAAE;QAC7B,MAAM,EAAE,+BAA+B,CAAA;QACvC,QAAQ,EAAE,iCAAiC,CAAA;KAC3C,CAAA;IACD,YAAY,EAAE;QACb,MAAM,EAAE,eAAe,CAAA;QACvB,QAAQ,EAAE,iBAAiB,CAAA;KAC3B,CAAA;IACD,YAAY,EAAE;QACb,MAAM,EAAE,eAAe,CAAA;QACvB,QAAQ,EAAE,iBAAiB,CAAA;KAC3B,CAAA;CACD;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,cAAc,CAAA;AACjD,MAAM,MAAM,wBAAwB,GAAG;KACrC,CAAC,IAAI,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,wBAAwB,GAAG,CAAC,GAAG,KAAK;CACjG,CAAC,cAAc,CAAC,CAAA;AACjB,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,cAAc,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AACD,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,cAAc,IACvD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5B,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;AAEtD,eAAO,MAAM,YAAY,EAAE,cAAc,EAKxC,CAAA"}
package/dist/api/index.js CHANGED
@@ -2,4 +2,5 @@ export const POST_METHODS = [
2
2
  'apps.connections.open',
3
3
  'chat.postMessage',
4
4
  'files.completeUploadExternal',
5
+ 'views.open',
5
6
  ];
@@ -1,35 +1,17 @@
1
1
  import type { PlainTextElement } from "@slack/types";
2
2
  import type { AnyMessage } from "../types/message.js";
3
- export interface BlockActions {
3
+ import type { InteractionCommon } from "./common.js";
4
+ import type { StateValue } from "../types/value.js";
5
+ export interface BlockActions extends InteractionCommon {
4
6
  type: "block_actions";
5
- user: {
6
- id: string;
7
- username: string;
8
- name: string;
9
- team_id: string;
10
- };
11
- api_app_id: string;
12
- token: string;
13
7
  container: BlockActionContainer;
14
- trigger_id: string;
15
- team: {
16
- id: string;
17
- domain: string;
18
- enterprise_id?: string;
19
- enterprise_name?: string;
20
- };
21
- enterprise?: {
22
- id: string;
23
- name: string;
24
- };
25
- is_enterprise_install?: boolean;
26
8
  channel?: {
27
9
  id: string;
28
10
  name: string;
29
11
  };
30
12
  message?: AnyMessage;
31
13
  state?: {
32
- values: Record<string, Record<string, unknown>>;
14
+ values: Record<string, Record<string, StateValue>>;
33
15
  };
34
16
  response_url?: string;
35
17
  actions: BlockAction[];
@@ -1 +1 @@
1
- {"version":3,"file":"block_actions.d.ts","sourceRoot":"","sources":["../../../src/api/interactive/block_actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,eAAe,CAAA;IACrB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,oBAAoB,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACtF,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAA;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,UAAU,0BAA0B;IACnC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACtB;AAED,UAAU,aAAa;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CACf;AAED,UAAU,gBAAgB;IACzB,IAAI,EAAE,SAAS,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACrB;AAED,KAAK,oBAAoB,GAAG,0BAA0B,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAEzF,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IACjD,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACzD,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,oBAAoB,CAAA;AAE7D,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,MAAM,cAAc,GAAG;KAC3B,CAAC,IAAI,gBAAgB,GAAG,WAAW,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE;CAClD,CAAA"}
1
+ {"version":3,"file":"block_actions.d.ts","sourceRoot":"","sources":["../../../src/api/interactive/block_actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACtD,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,EAAE,oBAAoB,CAAA;IAC/B,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;KAAE,CAAA;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,UAAU,0BAA0B;IACnC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACtB;AAED,UAAU,aAAa;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CACf;AAED,UAAU,gBAAgB;IACzB,IAAI,EAAE,SAAS,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACrB;AAED,KAAK,oBAAoB,GAAG,0BAA0B,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAEzF,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IACjD,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACzD,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,oBAAoB,CAAA;AAE7D,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,MAAM,cAAc,GAAG;KAC3B,CAAC,IAAI,gBAAgB,GAAG,WAAW,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE;CAClD,CAAA"}
@@ -0,0 +1,23 @@
1
+ export interface InteractionCommon {
2
+ team: {
3
+ id: string;
4
+ domain: string;
5
+ enterprise_id?: string;
6
+ enterprise_name?: string;
7
+ };
8
+ user: {
9
+ id: string;
10
+ username: string;
11
+ name: string;
12
+ team_id: string;
13
+ };
14
+ api_app_id: string;
15
+ token: string;
16
+ trigger_id: string;
17
+ is_enterprise_install?: boolean;
18
+ enterprise?: {
19
+ id: string;
20
+ name: string;
21
+ };
22
+ }
23
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/api/interactive/common.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACtF,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACzC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { ModalView } from "../types/view.js";
2
+ import type { InteractionCommon } from "./common.js";
3
+ export interface ViewSubmission extends InteractionCommon {
4
+ type: "view_submission";
5
+ view: ModalView;
6
+ response_urls: string[];
7
+ }
8
+ //# sourceMappingURL=view_submission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_submission.d.ts","sourceRoot":"","sources":["../../../src/api/interactive/view_submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACxD,IAAI,EAAE,iBAAiB,CAAA;IACvB,IAAI,EAAE,SAAS,CAAA;IACf,aAAa,EAAE,MAAM,EAAE,CAAA;CACvB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface PlainTextInputValue {
2
+ type: 'plain_text_input';
3
+ value: string;
4
+ }
5
+ export type StateValue = PlainTextInputValue;
6
+ //# sourceMappingURL=value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/api/types/value.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import type { KnownBlock, PlainTextElement } from "@slack/types";
2
+ import type { StateValue } from "./value.js";
3
+ export interface ModalView {
4
+ type: "modal";
5
+ id: string;
6
+ team_id: string;
7
+ title: PlainTextElement;
8
+ blocks: KnownBlock[];
9
+ close: PlainTextElement | null;
10
+ submit: PlainTextElement | null;
11
+ private_metadata: string;
12
+ callback_id: string;
13
+ state: {
14
+ values: Record<string, Record<string, StateValue>>;
15
+ };
16
+ hash: string;
17
+ clear_on_close: boolean;
18
+ notify_on_close: boolean;
19
+ external_id: string;
20
+ previous_view_id: string | null;
21
+ root_view_id: string | null;
22
+ app_id: string;
23
+ app_installed_team_id: string;
24
+ bot_id: string;
25
+ }
26
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/api/types/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAA;IACvB,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;KAAE,CAAA;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,MAAM,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACd"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { DistributivePick, NotNull } from "../../utils/typing.js";
2
+ import type { ModalView } from "../types/view.js";
3
+ export type ViewsOpenParams = {
4
+ view: Partial<{
5
+ [K in keyof ModalView]: NotNull<ModalView[K]>;
6
+ }> & DistributivePick<ModalView, "type" | "title" | "blocks">;
7
+ } & ({
8
+ trigger_id: string;
9
+ interactivity_pointer?: never;
10
+ } | {
11
+ trigger_id?: never;
12
+ interactivity_pointer: string;
13
+ });
14
+ export interface ViewsOpenResponse {
15
+ view: ModalView;
16
+ }
17
+ //# sourceMappingURL=views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../../src/api/web/views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,GAC/D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;CACzD,GAAG,CACD;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,qBAAqB,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CACvD,CAAA;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,SAAS,CAAA;CACf"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import { BlockBuilder } from "./base.js";
2
+ import type { ActionsBlock } from "@slack/types";
3
+ import type { ButtonBuilder } from "./elements/button.js";
4
+ import type { InteractiveElementBuilder } from "./elements/base.js";
5
+ type ActionsElementBuilder = ButtonBuilder<string>;
6
+ type TypedActionsBlock<Actions extends ActionsElementBuilder[], BlockID extends string> = ActionsBlock & {
7
+ block_id: BlockID;
8
+ elements: {
9
+ [K in keyof Actions]: Actions[K] extends InteractiveElementBuilder<infer Output> ? Output : never;
10
+ };
11
+ };
12
+ export declare class ActionsBlockBuilder<Actions extends ActionsElementBuilder[], BlockID extends string = string> extends BlockBuilder<TypedActionsBlock<Actions, BlockID>, BlockID> {
13
+ private _actions;
14
+ constructor(_actions: Actions);
15
+ id<BlockID extends string>(blockId: BlockID): ActionsBlockBuilder<Actions, BlockID>;
16
+ action<Action extends ActionsElementBuilder>(action: Action): ActionsBlockBuilder<[
17
+ ...Actions,
18
+ Action
19
+ ]>;
20
+ build(): TypedActionsBlock<Actions, BlockID>;
21
+ }
22
+ export declare function actions<Actions extends ActionsElementBuilder[]>(...actions: Actions): ActionsBlockBuilder<Actions, string>;
23
+ export {};
24
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/builders/blocks/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEhE,KAAK,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAElD,KAAK,iBAAiB,CACrB,OAAO,SAAS,qBAAqB,EAAE,EACvC,OAAO,SAAS,MAAM,IACnB,YAAY,GAAG;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE;SACR,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,yBAAyB,CAAC,MAAM,MAAM,CAAC,GAC7E,MAAM,GACN,KAAK;KACR,CAAA;CACD,CAAA;AAED,qBAAa,mBAAmB,CAC/B,OAAO,SAAS,qBAAqB,EAAE,EACvC,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9B,SAAQ,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IACvD,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,OAAO;IAI5B,EAAE,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;IAI5F,MAAM,CAAC,MAAM,SAAS,qBAAqB,EAC1C,MAAM,EAAE,MAAM,GACZ,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;IAKnC,KAAK,IAAI,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC;CAOrD;AAED,wBAAgB,OAAO,CAAC,OAAO,SAAS,qBAAqB,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,wCAEnF"}
@@ -0,0 +1,25 @@
1
+ import { BlockBuilder } from "./base.js";
2
+ export class ActionsBlockBuilder extends BlockBuilder {
3
+ _actions;
4
+ constructor(_actions) {
5
+ super();
6
+ this._actions = _actions;
7
+ }
8
+ id(blockId) {
9
+ return this._id(blockId);
10
+ }
11
+ action(action) {
12
+ this._actions.push(action);
13
+ return this;
14
+ }
15
+ build() {
16
+ return {
17
+ ...this._build(),
18
+ type: "actions",
19
+ elements: this._actions.map((a) => a.build()),
20
+ };
21
+ }
22
+ }
23
+ export function actions(...actions) {
24
+ return new ActionsBlockBuilder(actions);
25
+ }
@@ -0,0 +1,18 @@
1
+ type BuilderResults<T extends BlockBuilder<unknown>[]> = {
2
+ [K in keyof T]: T[K] extends BlockBuilder<infer Output> ? Output : never;
3
+ };
4
+ export declare function blocks<Builders extends BlockBuilder<unknown>[]>(...blocks: Builders): BuilderResults<Builders>;
5
+ export declare abstract class Builder<Output> {
6
+ abstract build(): Output;
7
+ protected _build(): Record<never, never>;
8
+ }
9
+ export declare abstract class BlockBuilder<Output, BlockID extends string = string> extends Builder<Output> {
10
+ private _blockId;
11
+ protected _id(id: string): any;
12
+ abstract id<BlockID extends string>(blockId: BlockID): BlockBuilder<unknown, BlockID>;
13
+ protected _build(): {
14
+ block_id: BlockID;
15
+ };
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/builders/blocks/base.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,CAAC,CAAC,SAAS,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK;CACxE,CAAA;AAED,wBAAgB,MAAM,CAAC,QAAQ,SAAS,YAAY,CAAC,OAAO,CAAC,EAAE,EAC9D,GAAG,MAAM,EAAE,QAAQ,GACjB,cAAc,CAAC,QAAQ,CAAC,CAE1B;AAED,8BAAsB,OAAO,CAAC,MAAM;IACnC,QAAQ,CAAC,KAAK,IAAI,MAAM;IAExB,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;CAGxC;AAED,8BAAsB,YAAY,CACjC,MAAM,EACN,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9B,SAAQ,OAAO,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAuB;IAEvC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAER,GAAG;IAGnB,QAAQ,CAAC,EAAE,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;cAElE,MAAM,IAAI;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE;CAGlD"}
@@ -0,0 +1,19 @@
1
+ import { randomUUID } from 'crypto';
2
+ export function blocks(...blocks) {
3
+ return blocks.map((b) => b.build());
4
+ }
5
+ export class Builder {
6
+ _build() {
7
+ return {};
8
+ }
9
+ }
10
+ export class BlockBuilder extends Builder {
11
+ _blockId = randomUUID();
12
+ _id(id) {
13
+ this._blockId = id;
14
+ return this;
15
+ }
16
+ _build() {
17
+ return { block_id: this._blockId };
18
+ }
19
+ }
@@ -0,0 +1,9 @@
1
+ import { Builder } from "../base.js";
2
+ export declare abstract class InteractiveElementBuilder<Output, ActionID extends string = string> extends Builder<Output> {
3
+ protected _actionId: string;
4
+ id<ActionID extends string>(actionId: ActionID): InteractiveElementBuilder<unknown, ActionID>;
5
+ _build(): {
6
+ action_id: ActionID;
7
+ };
8
+ }
9
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/builders/blocks/elements/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,8BAAsB,yBAAyB,CAC9C,MAAM,EACN,QAAQ,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,OAAO,CAAC,MAAM,CAAC;IACxB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAe;IAE1C,EAAE,CAAC,QAAQ,SAAS,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAKpF,MAAM,IAAI;QAAE,SAAS,EAAE,QAAQ,CAAA;KAAE;CAG1C"}
@@ -0,0 +1,12 @@
1
+ import { randomUUID } from "crypto";
2
+ import { Builder } from "../base.js";
3
+ export class InteractiveElementBuilder extends Builder {
4
+ _actionId = randomUUID();
5
+ id(actionId) {
6
+ this._actionId = actionId;
7
+ return this;
8
+ }
9
+ _build() {
10
+ return { action_id: this._actionId };
11
+ }
12
+ }
@@ -0,0 +1,23 @@
1
+ import type { Button, ColorScheme } from "@slack/types";
2
+ import { type TextObjectBuilder } from "../objects/text.js";
3
+ import { InteractiveElementBuilder } from "./base.js";
4
+ type TypedButton<ActionID extends string> = Button & {
5
+ action_id: ActionID;
6
+ };
7
+ export declare class ButtonBuilder<ActionID extends string> extends InteractiveElementBuilder<TypedButton<ActionID>, ActionID> {
8
+ private _text;
9
+ private _value?;
10
+ private _url?;
11
+ private _style?;
12
+ private _accessibilityLabel?;
13
+ constructor(_text: TextObjectBuilder<false>);
14
+ id<ActionID extends string>(actionId: ActionID): ButtonBuilder<ActionID>;
15
+ value(value: string): this;
16
+ url(url: string): this;
17
+ style(style: ColorScheme): this;
18
+ accessibilityLabel(accessibilityLabel: string): this;
19
+ build(): TypedButton<ActionID>;
20
+ }
21
+ export declare function button(text: string | TextObjectBuilder<false>): ButtonBuilder<string>;
22
+ export {};
23
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/builders/blocks/elements/button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAA;AAElD,KAAK,WAAW,CAAC,QAAQ,SAAS,MAAM,IAAI,MAAM,GAAG;IAAE,SAAS,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE5E,qBAAa,aAAa,CAAC,QAAQ,SAAS,MAAM,CAAE,SAAQ,yBAAyB,CACpF,WAAW,CAAC,QAAQ,CAAC,EACrB,QAAQ,CACR;IAMY,OAAO,CAAC,KAAK;IALzB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,IAAI,CAAC,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAQ;gBAEhB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;IAI1C,EAAE,CAAC,QAAQ,SAAS,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;IAIjF,KAAK,CAAC,KAAK,EAAE,MAAM;IAKnB,GAAG,CAAC,GAAG,EAAE,MAAM;IAKf,KAAK,CAAC,KAAK,EAAE,WAAW;IAKxB,kBAAkB,CAAC,kBAAkB,EAAE,MAAM;IAKpC,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC;CAWvC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,yBAE7D"}
@@ -0,0 +1,46 @@
1
+ import { ensureIsTextObjectBuilder } from "../objects/text.js";
2
+ import { InteractiveElementBuilder } from "./base.js";
3
+ export class ButtonBuilder extends InteractiveElementBuilder {
4
+ _text;
5
+ _value;
6
+ _url;
7
+ _style;
8
+ _accessibilityLabel;
9
+ constructor(_text) {
10
+ super();
11
+ this._text = _text;
12
+ }
13
+ id(actionId) {
14
+ return super.id(actionId);
15
+ }
16
+ value(value) {
17
+ this._value = value;
18
+ return this;
19
+ }
20
+ url(url) {
21
+ this._url = url;
22
+ return this;
23
+ }
24
+ style(style) {
25
+ this._style = style;
26
+ return this;
27
+ }
28
+ accessibilityLabel(accessibilityLabel) {
29
+ this._accessibilityLabel = accessibilityLabel;
30
+ return this;
31
+ }
32
+ build() {
33
+ return {
34
+ ...this._build(),
35
+ type: "button",
36
+ text: this._text.build(),
37
+ value: this._value,
38
+ url: this._url,
39
+ style: this._style,
40
+ accessibility_label: this._accessibilityLabel,
41
+ };
42
+ }
43
+ }
44
+ export function button(text) {
45
+ return new ButtonBuilder(ensureIsTextObjectBuilder(text).plain());
46
+ }
@@ -0,0 +1,3 @@
1
+ export { button } from "./button.js";
2
+ export { plainTextInput } from "./plain_text_input.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/builders/blocks/elements/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { button } from "./button.js";
2
+ export { plainTextInput } from "./plain_text_input.js";
@@ -0,0 +1,12 @@
1
+ import { InteractiveElementBuilder } from "./base.js";
2
+ import type { PlainTextInput } from "@slack/types";
3
+ type TypedPlainTextInput<ActionID extends string> = PlainTextInput & {
4
+ action_id: ActionID;
5
+ };
6
+ export declare class PlainTextInputBuilder<ActionID extends string> extends InteractiveElementBuilder<TypedPlainTextInput<ActionID>, ActionID> {
7
+ id<ActionID extends string>(actionId: ActionID): PlainTextInputBuilder<ActionID>;
8
+ build(): TypedPlainTextInput<ActionID>;
9
+ }
10
+ export declare function plainTextInput(): PlainTextInputBuilder<string>;
11
+ export {};
12
+ //# sourceMappingURL=plain_text_input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain_text_input.d.ts","sourceRoot":"","sources":["../../../../src/builders/blocks/elements/plain_text_input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,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,yBAAyB,CAC5F,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,QAAQ,CACR;IACS,EAAE,CAAC,QAAQ,SAAS,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IAIhF,KAAK,IAAI,mBAAmB,CAAC,QAAQ,CAAC;CAG/C;AAED,wBAAgB,cAAc,kCAE7B"}
@@ -0,0 +1,12 @@
1
+ import { InteractiveElementBuilder } from "./base.js";
2
+ export class PlainTextInputBuilder extends InteractiveElementBuilder {
3
+ id(actionId) {
4
+ return super.id(actionId);
5
+ }
6
+ build() {
7
+ return { ...this._build(), type: "plain_text_input" };
8
+ }
9
+ }
10
+ export function plainTextInput() {
11
+ return new PlainTextInputBuilder();
12
+ }
@@ -0,0 +1,7 @@
1
+ export { blocks } from "./base.js";
2
+ export { actions } from "./actions.js";
3
+ export { input } from "./input.js";
4
+ export { section } from "./section.js";
5
+ export * from "./elements/index.js";
6
+ export * from "./objects/index.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builders/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"}
@@ -0,0 +1,6 @@
1
+ export { blocks } from "./base.js";
2
+ export { actions } from "./actions.js";
3
+ export { input } from "./input.js";
4
+ export { section } from "./section.js";
5
+ export * from "./elements/index.js";
6
+ export * from "./objects/index.js";
@@ -0,0 +1,21 @@
1
+ import type { InputBlock } from "@slack/types";
2
+ import { BlockBuilder } from "./base.js";
3
+ import { type TextObjectBuilder } from "./objects/text.js";
4
+ import type { PlainTextInputBuilder } from "./elements/plain_text_input.js";
5
+ import type { InteractiveElementBuilder } from "./elements/base.js";
6
+ type InputElementBuilder = PlainTextInputBuilder<string>;
7
+ type TypedInputBlock<Element extends InputElementBuilder, BlockID extends string> = InputBlock & {
8
+ block_id: BlockID;
9
+ element: Element extends InteractiveElementBuilder<infer Output> ? Output : never;
10
+ };
11
+ export declare class InputBlockBuilder<Element extends InputElementBuilder, HasLabel extends boolean = false, BlockID extends string = string> extends BlockBuilder<TypedInputBlock<Element, BlockID>, BlockID> {
12
+ private _element;
13
+ private _label?;
14
+ constructor(_element: Element);
15
+ id<BlockID extends string>(blockId: BlockID): InputBlockBuilder<Element, HasLabel, BlockID>;
16
+ label(text: string | TextObjectBuilder<false>): InputBlockBuilder<Element, true>;
17
+ build(this: InputBlockBuilder<Element, true, BlockID>): TypedInputBlock<Element, BlockID>;
18
+ }
19
+ export declare function input<Element extends InputElementBuilder>(element: Element): InputBlockBuilder<Element, false, string>;
20
+ export {};
21
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/builders/blocks/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAExE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEhE,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,yBAAyB,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;CACjF,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,CAAC;IAGrD,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,GAE7B,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;IAGvC,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"}
@@ -0,0 +1,31 @@
1
+ import { BlockBuilder } from "./base.js";
2
+ import { ensureIsTextObjectBuilder } from "./objects/text.js";
3
+ import { SlackError } from "../../error.js";
4
+ export class InputBlockBuilder extends BlockBuilder {
5
+ _element;
6
+ _label;
7
+ constructor(_element) {
8
+ super();
9
+ this._element = _element;
10
+ }
11
+ id(blockId) {
12
+ return this._id(blockId);
13
+ }
14
+ label(text) {
15
+ this._label = ensureIsTextObjectBuilder(text).plain();
16
+ return this;
17
+ }
18
+ build() {
19
+ if (!this._label)
20
+ throw new SlackError("No label provided for input block");
21
+ return {
22
+ ...this._build(),
23
+ type: "input",
24
+ element: this._element.build(),
25
+ label: this._label.build(),
26
+ };
27
+ }
28
+ }
29
+ export function input(element) {
30
+ return new InputBlockBuilder(element);
31
+ }
@@ -0,0 +1,2 @@
1
+ export { mrkdwn, plain, text } from "./text.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/builders/blocks/objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1 @@
1
+ export { mrkdwn, plain, text } from "./text.js";
@@ -0,0 +1,22 @@
1
+ import type { MrkdwnElement, PlainTextElement } from "@slack/types";
2
+ import { Builder } from "../base.js";
3
+ export declare class TextObjectBuilder<Mrkdwn extends boolean = boolean> extends Builder<Mrkdwn extends true ? MrkdwnElement : PlainTextElement> {
4
+ private _text;
5
+ private _mrkdwn;
6
+ private _emoji;
7
+ private _verbatim;
8
+ constructor(_text: string, _mrkdwn: Mrkdwn);
9
+ emoji(this: TextObjectBuilder<false>, emoji?: boolean): TextObjectBuilder<false>;
10
+ verbatim(this: TextObjectBuilder<true>, verbatim?: boolean): TextObjectBuilder<true>;
11
+ mrkdwn(): TextObjectBuilder<true>;
12
+ mrkdwn<Mrkdwn extends boolean = true>(mrkdwn: Mrkdwn): TextObjectBuilder<Mrkdwn>;
13
+ plain(): TextObjectBuilder<false>;
14
+ build(): Mrkdwn extends true ? MrkdwnElement : PlainTextElement;
15
+ }
16
+ export declare function mrkdwn(text: string): TextObjectBuilder<true>;
17
+ export { mrkdwn as text };
18
+ export declare function plain(text: string): TextObjectBuilder<false>;
19
+ export declare function ensureIsTextObjectBuilder(text: string): TextObjectBuilder<true>;
20
+ export declare function ensureIsTextObjectBuilder<T extends TextObjectBuilder>(text: T): T;
21
+ export declare function ensureIsTextObjectBuilder<T extends TextObjectBuilder>(text: string | T): TextObjectBuilder<true> | T;
22
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/builders/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"}