slack.ts 0.0.5 → 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.
- package/dist/{events/types → api/events}/events.d.ts +1 -1
- package/dist/api/events/events.d.ts.map +1 -0
- package/dist/{events/types → api/events}/index.d.ts +2 -19
- package/dist/api/events/index.d.ts.map +1 -0
- package/dist/api/interactive/block_actions.d.ts +9 -4
- package/dist/api/interactive/block_actions.d.ts.map +1 -1
- package/dist/api/interactive/view_submission.d.ts +3 -2
- package/dist/api/interactive/view_submission.d.ts.map +1 -1
- package/dist/api/slash/index.d.ts +18 -0
- package/dist/api/slash/index.d.ts.map +1 -0
- package/dist/api/slash/index.js +1 -0
- package/dist/api/types/message.d.ts +3 -3
- package/dist/api/types/message.d.ts.map +1 -1
- package/dist/api/types/view.d.ts +4 -4
- package/dist/api/types/view.d.ts.map +1 -1
- package/dist/blocks/actions.d.ts +25 -0
- package/dist/blocks/actions.d.ts.map +1 -0
- package/dist/blocks/actions.js +25 -0
- package/dist/blocks/base.d.ts +19 -0
- package/dist/blocks/base.d.ts.map +1 -0
- package/dist/blocks/base.js +20 -0
- package/dist/blocks/elements/base.d.ts +10 -0
- package/dist/blocks/elements/base.d.ts.map +1 -0
- package/dist/blocks/elements/base.js +12 -0
- package/dist/blocks/elements/button.d.ts +23 -0
- package/dist/blocks/elements/button.d.ts.map +1 -0
- package/dist/blocks/elements/button.js +46 -0
- package/dist/blocks/elements/index.d.ts +4 -0
- package/dist/blocks/elements/index.d.ts.map +1 -0
- package/dist/blocks/elements/index.js +3 -0
- package/dist/blocks/elements/overflow.d.ts +30 -0
- package/dist/blocks/elements/overflow.d.ts.map +1 -0
- package/dist/blocks/elements/overflow.js +28 -0
- package/dist/blocks/elements/plain_text_input.d.ts +27 -0
- package/dist/blocks/elements/plain_text_input.d.ts.map +1 -0
- package/dist/blocks/elements/plain_text_input.js +58 -0
- package/dist/blocks/index.d.ts +7 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +6 -0
- package/dist/blocks/input.d.ts +21 -0
- package/dist/blocks/input.d.ts.map +1 -0
- package/dist/blocks/input.js +31 -0
- package/dist/blocks/objects/confirm.d.ts +34 -0
- package/dist/blocks/objects/confirm.d.ts.map +1 -0
- package/dist/blocks/objects/confirm.js +54 -0
- package/dist/blocks/objects/index.d.ts +4 -0
- package/dist/blocks/objects/index.d.ts.map +1 -0
- package/dist/blocks/objects/index.js +3 -0
- package/dist/blocks/objects/option.d.ts +17 -0
- package/dist/blocks/objects/option.d.ts.map +1 -0
- package/dist/blocks/objects/option.js +21 -0
- package/dist/blocks/objects/text.d.ts +25 -0
- package/dist/blocks/objects/text.d.ts.map +1 -0
- package/dist/blocks/objects/text.js +57 -0
- package/dist/blocks/section.d.ts +42 -0
- package/dist/blocks/section.d.ts.map +1 -0
- package/dist/blocks/section.js +48 -0
- package/dist/blocks/utils/extract.d.ts +56 -0
- package/dist/blocks/utils/extract.d.ts.map +1 -0
- package/dist/blocks/utils/extract.js +1 -0
- package/dist/client.d.ts +34 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/receivers/base.d.ts +23 -0
- package/dist/receivers/base.d.ts.map +1 -0
- package/dist/receivers/base.js +1 -0
- package/dist/{events/receivers → receivers}/dummy.d.ts +1 -1
- package/dist/receivers/dummy.d.ts.map +1 -0
- package/dist/{events/receivers → receivers}/socket.d.ts +2 -2
- package/dist/receivers/socket.d.ts.map +1 -0
- package/dist/{events/receivers → receivers}/socket.js +4 -0
- package/dist/resources/action.d.ts +1 -1
- package/dist/resources/action.d.ts.map +1 -1
- package/dist/resources/action.js +2 -2
- package/dist/resources/channel.d.ts +3 -2
- package/dist/resources/channel.d.ts.map +1 -1
- package/dist/resources/message.d.ts +19 -16
- package/dist/resources/message.d.ts.map +1 -1
- package/dist/resources/message.js +5 -6
- package/dist/resources/modal.d.ts +9 -8
- package/dist/resources/modal.d.ts.map +1 -1
- package/dist/resources/slash.d.ts +15 -0
- package/dist/resources/slash.d.ts.map +1 -0
- package/dist/resources/slash.js +22 -0
- package/dist/resources/submission.d.ts +6 -4
- package/dist/resources/submission.d.ts.map +1 -1
- package/dist/resources/submission.js +5 -2
- package/dist/utils/messaging.d.ts +8 -6
- package/dist/utils/messaging.d.ts.map +1 -1
- package/dist/utils/messaging.js +5 -1
- package/dist/utils/paginate.d.ts +2 -2
- package/dist/utils/paginate.d.ts.map +1 -1
- package/dist/utils/respond.d.ts +5 -12
- package/dist/utils/respond.d.ts.map +1 -1
- package/dist/utils/respond.js +1 -1
- package/package.json +1 -1
- package/dist/events/receivers/dummy.d.ts.map +0 -1
- package/dist/events/receivers/socket.d.ts.map +0 -1
- package/dist/events/types/events.d.ts.map +0 -1
- package/dist/events/types/index.d.ts.map +0 -1
- /package/dist/{events/types → api/events}/events.js +0 -0
- /package/dist/{events/types → api/events}/index.js +0 -0
- /package/dist/{events/receivers → receivers}/dummy.js +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SlackError } from "../error.js";
|
|
2
|
+
import { BlockBuilder } from "./base.js";
|
|
3
|
+
import { ensureIsTextObjectBuilder } from "./objects/text.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,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
|
+
}
|
|
@@ -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,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
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
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;
|
|
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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Builder } from "../base.js";
|
|
2
|
+
export class TextObjectBuilder extends Builder {
|
|
3
|
+
_text;
|
|
4
|
+
_mrkdwn;
|
|
5
|
+
_emoji = false;
|
|
6
|
+
_verbatim = false;
|
|
7
|
+
constructor(_text, _mrkdwn) {
|
|
8
|
+
super();
|
|
9
|
+
this._text = _text;
|
|
10
|
+
this._mrkdwn = _mrkdwn;
|
|
11
|
+
}
|
|
12
|
+
emoji(emoji = true) {
|
|
13
|
+
this._emoji = emoji;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
verbatim(verbatim = true) {
|
|
17
|
+
this._verbatim = verbatim;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
mrkdwn(mrkdwn = true) {
|
|
21
|
+
this._mrkdwn = mrkdwn;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
plain() {
|
|
25
|
+
return this.mrkdwn(false);
|
|
26
|
+
}
|
|
27
|
+
build() {
|
|
28
|
+
if (this._mrkdwn) {
|
|
29
|
+
return {
|
|
30
|
+
type: "mrkdwn",
|
|
31
|
+
text: this._text,
|
|
32
|
+
verbatim: this._verbatim,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return {
|
|
37
|
+
type: "plain_text",
|
|
38
|
+
text: this._text,
|
|
39
|
+
emoji: this._emoji,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function mrkdwn(text) {
|
|
45
|
+
return new TextObjectBuilder(text, true);
|
|
46
|
+
}
|
|
47
|
+
export { mrkdwn as text };
|
|
48
|
+
export function plain(text) {
|
|
49
|
+
return new TextObjectBuilder(text, false);
|
|
50
|
+
}
|
|
51
|
+
export function ensureIsTextObjectBuilder(text) {
|
|
52
|
+
return text === undefined
|
|
53
|
+
? undefined
|
|
54
|
+
: typeof text === "string"
|
|
55
|
+
? new TextObjectBuilder(text, true)
|
|
56
|
+
: text;
|
|
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 {
|
|
5
|
-
import type {
|
|
6
|
-
import type
|
|
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
|
|
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AACjC,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AACjC,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGpE,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAW,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,OAAO,EAAgB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE3E,KAAK,eAAe,GACjB,CAAC;IACD,IAAI,EAAE,QAAQ,CAAA;CACb,GAAG,gBAAgB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC,GAC5D;IACA,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAEJ,UAAU,UAAU;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;CACjC,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAA;AAEpE,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,SAAS,IAAI;IACxD,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;CAC1B,CAAA;AACD,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,SAAS,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,OAAO,CAAA;AAEhG,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,WAAW,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,CAAA;AAE3F,qBAAa,GAAI,SAAQ,YAAY,CAAC,WAAW,CAAC;;gBAIrC,EAAE,KAAK,EAAE,QAA4B,EAAE,GAAE,UAAe;IAgEpE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,eAAe;IAejC;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;IAMlF;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC;IAMxF;;;OAGG;IACG,KAAK;IAIX;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM;IAIlB;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,SAAS,cAAc,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAqC3D;AAED,KAAK,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,YAAY,CAAC,CAAA;IACrB,OAAO,EAAE,CAAC,YAAY,CAAC,CAAA;IACvB,MAAM,EAAE,CAAC,cAAc,CAAC,CAAA;IACxB,MAAM,EAAE,CAAC,cAAc,CAAC,CAAA;IACxB,OAAO,EAAE,CAAC,eAAe,CAAC,CAAA;IAC1B,gBAAgB,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;IAClD,KAAK,EAAE,CAAC,oBAAoB,CAAC,CAAA;CAC7B,GAAG;KACF,CAAC,IAAI,aAAa,IAAI,SAAS,CAAC,EAAE,GAAG;QACrC;YAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;YAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE;KACpE;CACD,GAAG;KACF,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7E,GAAG;KACF,CAAC,IAAI,UAAU,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;CAC3C,GAAG;KACF,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACvF,GAAG;KACF,CAAC,IAAI,UAAU,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;CAC3C,GAAG;KACF,CAAC,IAAI,WAAW,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC;CAC7C,GAAG;KACF,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,IAAI,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAClG,GAAG;KACF,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,IAAI,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,MAAM,EAAE,GAAG;QACvF,eAAe,CAAC,CAAC,CAAC;KAClB;CACD,GAAG;KACF,CAAC,IAAI,kBAAkB,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;CACnE,GAAG;KACF,CAAC,IAAI,IAAI,MAAM,EAAE,GAAG,CAAC,oBAAoB,CAAC;CAC3C,CAAA"}
|
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 "./
|
|
5
|
-
import { SocketEventsReceiver } from "./
|
|
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
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,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
|
@@ -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 "
|
|
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"}
|