slack.ts 0.0.6 → 0.0.7

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 (126) hide show
  1. package/dist/{events/types → api/events}/events.d.ts +1 -1
  2. package/dist/api/events/events.d.ts.map +1 -0
  3. package/dist/{events/types → api/events}/index.d.ts +2 -19
  4. package/dist/api/events/index.d.ts.map +1 -0
  5. package/dist/api/interactive/block_actions.d.ts +9 -4
  6. package/dist/api/interactive/block_actions.d.ts.map +1 -1
  7. package/dist/api/interactive/view_submission.d.ts +3 -2
  8. package/dist/api/interactive/view_submission.d.ts.map +1 -1
  9. package/dist/api/slash/index.d.ts +18 -0
  10. package/dist/api/slash/index.d.ts.map +1 -0
  11. package/dist/api/slash/index.js +1 -0
  12. package/dist/api/types/message.d.ts +3 -3
  13. package/dist/api/types/message.d.ts.map +1 -1
  14. package/dist/api/types/view.d.ts +4 -4
  15. package/dist/api/types/view.d.ts.map +1 -1
  16. package/dist/{builders/blocks → blocks}/actions.d.ts +4 -3
  17. package/dist/blocks/actions.d.ts.map +1 -0
  18. package/dist/{builders/blocks → blocks}/base.d.ts +3 -2
  19. package/dist/blocks/base.d.ts.map +1 -0
  20. package/dist/{builders/blocks → blocks}/base.js +1 -0
  21. package/dist/blocks/elements/base.d.ts +10 -0
  22. package/dist/blocks/elements/base.d.ts.map +1 -0
  23. package/dist/{builders/blocks → blocks}/elements/base.js +2 -2
  24. package/dist/{builders/blocks → blocks}/elements/button.d.ts +2 -2
  25. package/dist/blocks/elements/button.d.ts.map +1 -0
  26. package/dist/{builders/blocks → blocks}/elements/button.js +3 -3
  27. package/dist/{builders/blocks → blocks}/elements/index.d.ts +1 -0
  28. package/dist/blocks/elements/index.d.ts.map +1 -0
  29. package/dist/{builders/blocks → blocks}/elements/index.js +1 -0
  30. package/dist/blocks/elements/overflow.d.ts +30 -0
  31. package/dist/blocks/elements/overflow.d.ts.map +1 -0
  32. package/dist/blocks/elements/overflow.js +28 -0
  33. package/dist/blocks/elements/plain_text_input.d.ts +27 -0
  34. package/dist/blocks/elements/plain_text_input.d.ts.map +1 -0
  35. package/dist/blocks/elements/plain_text_input.js +58 -0
  36. package/dist/blocks/index.d.ts.map +1 -0
  37. package/dist/{builders/blocks → blocks}/input.d.ts +5 -5
  38. package/dist/blocks/input.d.ts.map +1 -0
  39. package/dist/{builders/blocks → blocks}/input.js +1 -1
  40. package/dist/blocks/objects/confirm.d.ts +34 -0
  41. package/dist/blocks/objects/confirm.d.ts.map +1 -0
  42. package/dist/blocks/objects/confirm.js +54 -0
  43. package/dist/{builders/blocks → blocks}/objects/index.d.ts +2 -0
  44. package/dist/blocks/objects/index.d.ts.map +1 -0
  45. package/dist/blocks/objects/index.js +3 -0
  46. package/dist/blocks/objects/option.d.ts +17 -0
  47. package/dist/blocks/objects/option.d.ts.map +1 -0
  48. package/dist/blocks/objects/option.js +21 -0
  49. package/dist/{builders/blocks → blocks}/objects/text.d.ts +3 -0
  50. package/dist/blocks/objects/text.d.ts.map +1 -0
  51. package/dist/{builders/blocks → blocks}/objects/text.js +5 -1
  52. package/dist/blocks/section.d.ts +42 -0
  53. package/dist/blocks/section.d.ts.map +1 -0
  54. package/dist/blocks/section.js +48 -0
  55. package/dist/blocks/utils/extract.d.ts +56 -0
  56. package/dist/blocks/utils/extract.d.ts.map +1 -0
  57. package/dist/blocks/utils/extract.js +1 -0
  58. package/dist/client.d.ts +34 -6
  59. package/dist/client.d.ts.map +1 -1
  60. package/dist/client.js +11 -2
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/receivers/base.d.ts +23 -0
  65. package/dist/receivers/base.d.ts.map +1 -0
  66. package/dist/receivers/base.js +1 -0
  67. package/dist/{events/receivers → receivers}/dummy.d.ts +1 -1
  68. package/dist/receivers/dummy.d.ts.map +1 -0
  69. package/dist/{events/receivers → receivers}/socket.d.ts +2 -2
  70. package/dist/receivers/socket.d.ts.map +1 -0
  71. package/dist/{events/receivers → receivers}/socket.js +4 -0
  72. package/dist/resources/action.d.ts +1 -1
  73. package/dist/resources/action.d.ts.map +1 -1
  74. package/dist/resources/action.js +2 -2
  75. package/dist/resources/channel.d.ts +3 -2
  76. package/dist/resources/channel.d.ts.map +1 -1
  77. package/dist/resources/message.d.ts +19 -16
  78. package/dist/resources/message.d.ts.map +1 -1
  79. package/dist/resources/message.js +5 -6
  80. package/dist/resources/modal.d.ts +9 -8
  81. package/dist/resources/modal.d.ts.map +1 -1
  82. package/dist/resources/slash.d.ts +15 -0
  83. package/dist/resources/slash.d.ts.map +1 -0
  84. package/dist/resources/slash.js +22 -0
  85. package/dist/resources/submission.d.ts +6 -4
  86. package/dist/resources/submission.d.ts.map +1 -1
  87. package/dist/resources/submission.js +5 -2
  88. package/dist/utils/messaging.d.ts +8 -6
  89. package/dist/utils/messaging.d.ts.map +1 -1
  90. package/dist/utils/messaging.js +5 -1
  91. package/dist/utils/paginate.d.ts +2 -2
  92. package/dist/utils/paginate.d.ts.map +1 -1
  93. package/dist/utils/respond.d.ts +5 -12
  94. package/dist/utils/respond.d.ts.map +1 -1
  95. package/dist/utils/respond.js +1 -1
  96. package/package.json +1 -1
  97. package/dist/builders/blocks/actions.d.ts.map +0 -1
  98. package/dist/builders/blocks/base.d.ts.map +0 -1
  99. package/dist/builders/blocks/elements/base.d.ts +0 -9
  100. package/dist/builders/blocks/elements/base.d.ts.map +0 -1
  101. package/dist/builders/blocks/elements/button.d.ts.map +0 -1
  102. package/dist/builders/blocks/elements/index.d.ts.map +0 -1
  103. package/dist/builders/blocks/elements/plain_text_input.d.ts +0 -12
  104. package/dist/builders/blocks/elements/plain_text_input.d.ts.map +0 -1
  105. package/dist/builders/blocks/elements/plain_text_input.js +0 -12
  106. package/dist/builders/blocks/index.d.ts.map +0 -1
  107. package/dist/builders/blocks/input.d.ts.map +0 -1
  108. package/dist/builders/blocks/objects/index.d.ts.map +0 -1
  109. package/dist/builders/blocks/objects/index.js +0 -1
  110. package/dist/builders/blocks/objects/text.d.ts.map +0 -1
  111. package/dist/builders/blocks/section.d.ts +0 -24
  112. package/dist/builders/blocks/section.d.ts.map +0 -1
  113. package/dist/builders/blocks/section.js +0 -22
  114. package/dist/builders/index.d.ts +0 -2
  115. package/dist/builders/index.d.ts.map +0 -1
  116. package/dist/builders/index.js +0 -1
  117. package/dist/events/receivers/dummy.d.ts.map +0 -1
  118. package/dist/events/receivers/socket.d.ts.map +0 -1
  119. package/dist/events/types/events.d.ts.map +0 -1
  120. package/dist/events/types/index.d.ts.map +0 -1
  121. /package/dist/{events/types → api/events}/events.js +0 -0
  122. /package/dist/{events/types → api/events}/index.js +0 -0
  123. /package/dist/{builders/blocks → blocks}/actions.js +0 -0
  124. /package/dist/{builders/blocks → blocks}/index.d.ts +0 -0
  125. /package/dist/{builders/blocks → blocks}/index.js +0 -0
  126. /package/dist/{events/receivers → receivers}/dummy.js +0 -0
@@ -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":"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"}
@@ -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 {};
package/dist/client.d.ts CHANGED
@@ -1,14 +1,16 @@
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
10
  import { 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";
12
14
  type ReceiverOptions = ({
13
15
  type: "socket";
14
16
  } & DistributiveOmit<SocketEventsReceiverOptions, "client">) | {
@@ -78,9 +80,9 @@ export declare class App extends EventEmitter<AppEventMap> {
78
80
  * @param params The parameters for the method
79
81
  * @returns The response from the API call
80
82
  */
81
- request<Method extends SlackAPIMethod>(method: Method, params: SlackAPIParams<Method>): Promise<SlackAPIResponse<Method> & {
83
+ request<Method extends SlackAPIMethod>(method: Method, params: SlackAPIParams<Method>): Promise<Extract<SlackAPIResponse<Method>, {
82
84
  ok: true;
83
- }>;
85
+ }>>;
84
86
  }
85
87
  type AppEventMap = {
86
88
  event: [
@@ -98,6 +100,12 @@ type AppEventMap = {
98
100
  message: [
99
101
  MessageInstance
100
102
  ];
103
+ "message:normal": [
104
+ MessageInstance<NormalMessage>
105
+ ];
106
+ slash: [
107
+ SlashCommandInstance
108
+ ];
101
109
  } & {
102
110
  [K in AllEventTypes as `event:${K}`]: [
103
111
  {
@@ -125,6 +133,26 @@ type AppEventMap = {
125
133
  [K in `message#${string}`]: [
126
134
  MessageInstance
127
135
  ];
136
+ } & {
137
+ [K in Extract<AnyMessage, {
138
+ subtype: string;
139
+ }> as `message:${K["subtype"]}`]: [
140
+ MessageInstance<K>
141
+ ];
142
+ } & {
143
+ [K in Extract<AnyMessage, {
144
+ subtype: string;
145
+ }> as `message:${K["subtype"]}#${string}`]: [
146
+ MessageInstance<K>
147
+ ];
148
+ } & {
149
+ [K in `message:normal#${string}`]: [
150
+ MessageInstance<NormalMessage>
151
+ ];
152
+ } & {
153
+ [K in `/${string}`]: [
154
+ SlashCommandInstance
155
+ ];
128
156
  };
129
157
  export {};
130
158
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import EventEmitter from "events";
2
2
  import { POST_METHODS, } from "./api/index.js";
3
3
  import { SlackWebAPIError, SlackWebAPIPlatformError } from "./error.js";
4
- import { DummyReceiver } from "./events/receivers/dummy.js";
5
- import { SocketEventsReceiver } from "./events/receivers/socket.js";
4
+ import { DummyReceiver } from "./receivers/dummy.js";
5
+ import { SocketEventsReceiver } from "./receivers/socket.js";
6
6
  import { Action } from "./resources/action.js";
7
7
  import { ChannelRef } from "./resources/channel.js";
8
8
  import { Message } from "./resources/message.js";
9
9
  import { sleep } from "./utils/index.js";
10
+ import { SlashCommand } from "./resources/slash.js";
10
11
  export class App extends EventEmitter {
11
12
  #token;
12
13
  #receiver;
@@ -24,6 +25,7 @@ export class App extends EventEmitter {
24
25
  this.#receiver.on("event", this.#onEvent.bind(this));
25
26
  this.#receiver.on("block_actions", this.#onBlockActions.bind(this));
26
27
  this.#receiver.on("view_submission", this.#onViewSubmission.bind(this));
28
+ this.#receiver.on("slash_command", this.#onSlashCommand.bind(this));
27
29
  this.on("event:message", this.#onMessage.bind(this));
28
30
  }
29
31
  #onEvent(event) {
@@ -43,6 +45,11 @@ export class App extends EventEmitter {
43
45
  this.emit("submit", event);
44
46
  this.emit(`submit.${event.view.callback_id}`, event);
45
47
  }
48
+ #onSlashCommand(event) {
49
+ const command = new SlashCommand(this, event);
50
+ this.emit("slash", command);
51
+ this.emit(`/${event.command.substring(1)}`, command);
52
+ }
46
53
  async #onCallbackError(error) {
47
54
  console.error("Error occurred executing callback");
48
55
  console.error(error);
@@ -50,6 +57,8 @@ export class App extends EventEmitter {
50
57
  #onMessage({ payload }) {
51
58
  const message = new Message(this, payload.channel, payload.ts, payload);
52
59
  this.emit("message", message);
60
+ this.emit(`message:${payload.subtype ?? "normal"}`, message);
61
+ this.emit(`message:${payload.subtype ?? "normal"}#${payload.channel}`, message);
53
62
  this.emit(`message#${payload.channel}`, message);
54
63
  }
55
64
  /**
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from "./client.js";
2
2
  export * from "./error.js";
3
- export * from "./builders/index.js";
3
+ export * from "./blocks/index.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from "./client.js";
2
2
  export * from "./error.js";
3
- export * from "./builders/index.js";
3
+ export * from "./blocks/index.js";
@@ -0,0 +1,23 @@
1
+ import type EventEmitter from "events";
2
+ import type { AllEvents, EventWrapper } from "../api/events/index.js";
3
+ import type { BlockActions } from "../api/interactive/block_actions.js";
4
+ import type { ViewSubmission } from "../api/interactive/view_submission.js";
5
+ import type { SlashCommandPayload } from "../api/slash/index.js";
6
+ export interface EventsReceiver extends EventEmitter<ReceiverEventMap> {
7
+ start(): unknown;
8
+ }
9
+ export type ReceiverEventMap = {
10
+ event: [
11
+ EventWrapper<AllEvents>
12
+ ];
13
+ block_actions: [
14
+ BlockActions
15
+ ];
16
+ view_submission: [
17
+ ViewSubmission
18
+ ];
19
+ slash_command: [
20
+ SlashCommandPayload
21
+ ];
22
+ };
23
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/receivers/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACrE,KAAK,IAAI,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;IAChC,aAAa,EAAE,CAAC,YAAY,CAAC,CAAA;IAC7B,eAAe,EAAE,CAAC,cAAc,CAAC,CAAA;IACjC,aAAa,EAAE,CAAC,mBAAmB,CAAC,CAAA;CACpC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from "events";
2
- import type { EventsReceiver, ReceiverEventMap } from "../types/index.js";
2
+ import type { EventsReceiver, ReceiverEventMap } from "./base.js";
3
3
  export declare class DummyReceiver extends EventEmitter<ReceiverEventMap> implements EventsReceiver {
4
4
  constructor();
5
5
  start(): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dummy.d.ts","sourceRoot":"","sources":["../../src/receivers/dummy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAE9D,qBAAa,aAAc,SAAQ,YAAY,CAAC,gBAAgB,CAAE,YAAW,cAAc;;IAK1F,KAAK;CACL"}
@@ -1,6 +1,6 @@
1
1
  import EventEmitter from "events";
2
- import type { App } from "../../client.js";
3
- import type { EventsReceiver, ReceiverEventMap } from "../types/index.js";
2
+ import type { App } from "../client.js";
3
+ import type { EventsReceiver, ReceiverEventMap } from "./base.js";
4
4
  export interface SocketEventsReceiverOptions {
5
5
  appToken: string;
6
6
  client: App;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/receivers/socket.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAIjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAG9D,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,GAAG,CAAA;CACX;AAED,qBAAa,oBAAqB,SAAQ,YAAY,CAAC,gBAAgB,CAAE,YAAW,cAAc;;IAE1F,MAAM,EAAE,GAAG,CAAA;gBAGN,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,2BAA2B;IAYvD,KAAK;YAIG,QAAQ;CA6CtB"}
@@ -40,6 +40,10 @@ export class SocketEventsReceiver extends EventEmitter {
40
40
  this.#ws?.send(JSON.stringify({ envelope_id: data.envelope_id }));
41
41
  this.emit(data.payload.type, data.payload);
42
42
  }
43
+ else if (data.type === 'slash_commands') {
44
+ this.#ws?.send(JSON.stringify({ envelope_id: data.envelope_id }));
45
+ this.emit('slash_command', data.payload);
46
+ }
43
47
  else if (data.type === 'hello') {
44
48
  console.debug('[socket-mode] received server hello, app id', data.connection_info.app_id);
45
49
  }
@@ -1,6 +1,6 @@
1
1
  import type { BlockAction, BlockActions } from "../api/interactive/block_actions.js";
2
2
  import type { App } from "../client.js";
3
- import { type Responder } from "../utils/respond.js";
3
+ import { Responder } from "../utils/respond.js";
4
4
  export declare class Action<Type extends BlockAction = BlockAction> {
5
5
  #private;
6
6
  protected client: App;
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/resources/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEhE,qBAAa,MAAM,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW;;IAKxD,SAAS,CAAC,MAAM,EAAE,GAAG;gBAAX,MAAM,EAAE,GAAG,EACrB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,YAAY;IAOpB,IAAI,KAAK,iBAER;IAED,IAAI,GAAG,SAEN;IAED,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAE7B;CACD;AAED,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/resources/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,qBAAa,MAAM,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW;;IAKxD,SAAS,CAAC,MAAM,EAAE,GAAG;gBAAX,MAAM,EAAE,GAAG,EACrB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,YAAY;IAOpB,IAAI,KAAK,iBAER;IAED,IAAI,GAAG,SAEN;IAED,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAE7B;CACD;AAED,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { makeProxy } from "../utils/index.js";
2
- import { ResponderImpl } from "../utils/respond.js";
2
+ import { Responder } from "../utils/respond.js";
3
3
  export class Action {
4
4
  client;
5
5
  #data;
@@ -17,6 +17,6 @@ export class Action {
17
17
  return this.#data;
18
18
  }
19
19
  get respond() {
20
- return new ResponderImpl(this.client, this.#event.response_url, this.#event.trigger_id);
20
+ return new Responder(this.client, this.#event.response_url, this.#event.trigger_id);
21
21
  }
22
22
  }
@@ -1,3 +1,4 @@
1
+ import type { KnownBlock } from "@slack/types";
1
2
  import type { TimestampPaginationParams } from "../api/types/api.js";
2
3
  import type { Conversation } from "../api/types/conversation.js";
3
4
  import type { NormalMessage } from "../api/types/message.js";
@@ -38,7 +39,7 @@ declare class ChannelMixin {
38
39
  * @param message The message payload to send, either a mrkdwn-formatted string or an object.
39
40
  * @returns The sent message
40
41
  */
41
- send(message: DistributiveOmit<SendMessageWithoutFiles, "channel"> | string): Promise<MessageInstance<NormalMessage>>;
42
+ send<Blocks extends KnownBlock[] = KnownBlock[]>(message: DistributiveOmit<SendMessageWithoutFiles<Blocks>, "channel"> | string): Promise<MessageInstance<NormalMessage<Blocks>, Blocks>>;
42
43
  /**
43
44
  * Gets a message reference object. You can use this object to call API methods, or `await` it to
44
45
  * fetch message details.
@@ -46,7 +47,7 @@ declare class ChannelMixin {
46
47
  * @param ts The timestamp of the message
47
48
  * @returns A message reference object
48
49
  */
49
- message(ts: string): MessageRef<import("../api/types/message.js").AnyMessage>;
50
+ message(ts: string): MessageRef<import("../api/types/message.js").AnyMessage, KnownBlock[]>;
50
51
  /**
51
52
  * Fetches messages in the channel. Note that this method only fetches root messages (i.e.,
52
53
  * messages not in a thread); to fetch thread replies, use the `replies` method on messages
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/resources/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAGN,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAW,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,UAAU,mBAAoB,SAAQ,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC7E;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,cAAM,YAAY;;IAIhB,SAAS,CAAC,MAAM,EAAE,GAAG;gBAAX,MAAM,EAAE,GAAG,EACrB,EAAE,EAAE,MAAM;IAKX,wBAAwB;IACxB,IAAI,EAAE,WAEL;IAED;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAE1F;;;;;OAKG;IACG,IAAI,CACT,OAAO,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAAG,MAAM,GACpE,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAiB1C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM;IAIlB;;;;;;;OAOG;IACI,QAAQ,CAAC,MAAM,GAAE,mBAAwB;CAOhD;AAED,qBAAa,UAAW,SAAQ,YAAa,YAAW,WAAW,CAAC,eAAe,CAAC;;IACnF,IAAI,CAAC,QAAQ,GAAG,eAAe,EAAE,QAAQ,GAAG,KAAK,EAChD,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/F,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GACjF,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAQnC;AAED,qBAAa,OAAQ,SAAQ,YAAY;;gBAG5B,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IAMvD,sFAAsF;IACtF,IAAI,OAAO,wBAEV;CACD;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/resources/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAGN,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAW,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,UAAU,mBAAoB,SAAQ,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC7E;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,cAAM,YAAY;;IAIhB,SAAS,CAAC,MAAM,EAAE,GAAG;gBAAX,MAAM,EAAE,GAAG,EACrB,EAAE,EAAE,MAAM;IAKX,wBAAwB;IACxB,IAAI,EAAE,WAEL;IAED;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAE1F;;;;;OAKG;IACG,IAAI,CAAC,MAAM,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,EACpD,OAAO,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,GAC5E,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAiB1D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM;IAIlB;;;;;;;OAOG;IACI,QAAQ,CAAC,MAAM,GAAE,mBAAwB;CAOhD;AAED,qBAAa,UAAW,SAAQ,YAAa,YAAW,WAAW,CAAC,eAAe,CAAC;;IACnF,IAAI,CAAC,QAAQ,GAAG,eAAe,EAAE,QAAQ,GAAG,KAAK,EAChD,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/F,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GACjF,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAQnC;AAED,qBAAa,OAAQ,SAAQ,YAAY;;gBAG5B,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IAMvD,sFAAsF;IACtF,IAAI,OAAO,wBAEV;CACD;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA"}