dfx 0.10.0 → 0.11.0
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/Interactions/context.d.ts +3 -3
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +17 -17
- package/Interactions/definitions.js.map +1 -1
- package/Interactions/gateway.d.ts +2 -2
- package/Interactions/gateway.js +4 -3
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +3 -2
- package/Interactions/handlers.js +7 -7
- package/Interactions/handlers.js.map +1 -1
- package/Interactions/index.d.ts +2 -2
- package/Interactions/index.js +1 -1
- package/Interactions/index.js.map +1 -1
- package/Interactions/webhook.d.ts +1 -2
- package/Interactions/webhook.js +6 -2
- package/Interactions/webhook.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Discord
|
|
1
|
+
import { Discord } from "dfx/common";
|
|
2
2
|
import { InteractionResponse } from "./definitions.js";
|
|
3
3
|
import { EffectTypeId, Effect } from "@effect/io/Effect";
|
|
4
4
|
export declare const InteractionContext: import("../common.js").Tag<import("../types.js").Interaction>;
|
|
@@ -28,7 +28,7 @@ export declare class SubCommandNotFound {
|
|
|
28
28
|
readonly _tag = "SubCommandNotFound";
|
|
29
29
|
constructor(data: Discord.ApplicationCommandDatum);
|
|
30
30
|
}
|
|
31
|
-
export declare const handleSubCommands: <NER extends Record<string, Effect<any, any,
|
|
31
|
+
export declare const handleSubCommands: <NER extends Record<string, Effect<any, any, InteractionResponse>>>(commands: NER) => Effect<import("../types.js").Interaction | import("../types.js").ApplicationCommandDatum | Exclude<[NER[keyof NER]] extends [{
|
|
32
32
|
[EffectTypeId]: {
|
|
33
33
|
_R: (_: never) => infer R;
|
|
34
34
|
};
|
|
@@ -36,7 +36,7 @@ export declare const handleSubCommands: <NER extends Record<string, Effect<any,
|
|
|
36
36
|
[EffectTypeId]: {
|
|
37
37
|
_E: (_: never) => infer E;
|
|
38
38
|
};
|
|
39
|
-
}] ? E : never),
|
|
39
|
+
}] ? E : never), InteractionResponse>;
|
|
40
40
|
export declare const getSubCommand: Effect<SubCommandContext, never, import("../types.js").ApplicationCommandInteractionDataOption>;
|
|
41
41
|
export declare const subCommandOptionsMap: Effect<SubCommandContext, never, Record<string, string | undefined>>;
|
|
42
42
|
export declare const modalValues: Effect<import("../types.js").ModalSubmitDatum, never, Record<string, string | undefined>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/Interactions/context.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/Interactions/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Discord, Effect
|
|
1
|
+
import { Discord, Effect } from "dfx/common";
|
|
2
2
|
export type InteractionResponse = {
|
|
3
3
|
type: Discord.InteractionCallbackType.CHANNEL_MESSAGE_WITH_SOURCE;
|
|
4
4
|
data: Discord.InteractionCallbackMessage;
|
|
@@ -24,37 +24,37 @@ type DescriptionMissing<A> = A extends {
|
|
|
24
24
|
export type InteractionDefinition<R, E> = GlobalApplicationCommand<R, E> | GuildApplicationCommand<R, E> | MessageComponent<R, E> | ModalSubmit<R, E> | Autocomplete<R, E>;
|
|
25
25
|
export declare class GlobalApplicationCommand<R, E> {
|
|
26
26
|
readonly command: Discord.CreateGlobalApplicationCommandParams;
|
|
27
|
-
readonly handle: Effect<R, E,
|
|
27
|
+
readonly handle: Effect<R, E, InteractionResponse>;
|
|
28
28
|
readonly _tag = "GlobalApplicationCommand";
|
|
29
|
-
constructor(command: Discord.CreateGlobalApplicationCommandParams, handle: Effect<R, E,
|
|
29
|
+
constructor(command: Discord.CreateGlobalApplicationCommandParams, handle: Effect<R, E, InteractionResponse>);
|
|
30
30
|
}
|
|
31
|
-
export declare const global: <R, E, A extends import("../types.js").CreateGlobalApplicationCommandParams>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : import("../common.js").Effect<R, E,
|
|
31
|
+
export declare const global: <R, E, A extends import("../types.js").CreateGlobalApplicationCommandParams>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : import("../common.js").Effect<R, E, InteractionResponse>) => GlobalApplicationCommand<Exclude<R, import("../types.js").Interaction | import("../types.js").ApplicationCommandDatum>, E>;
|
|
32
32
|
export declare class GuildApplicationCommand<R, E> {
|
|
33
33
|
readonly command: Discord.CreateGuildApplicationCommandParams;
|
|
34
|
-
readonly handle: Effect<R, E,
|
|
34
|
+
readonly handle: Effect<R, E, InteractionResponse>;
|
|
35
35
|
readonly _tag = "GuildApplicationCommand";
|
|
36
|
-
constructor(command: Discord.CreateGuildApplicationCommandParams, handle: Effect<R, E,
|
|
36
|
+
constructor(command: Discord.CreateGuildApplicationCommandParams, handle: Effect<R, E, InteractionResponse>);
|
|
37
37
|
}
|
|
38
|
-
export declare const guild: <R, E, A extends import("../types.js").CreateGuildApplicationCommandParams>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : import("../common.js").Effect<R, E,
|
|
38
|
+
export declare const guild: <R, E, A extends import("../types.js").CreateGuildApplicationCommandParams>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : import("../common.js").Effect<R, E, InteractionResponse>) => GuildApplicationCommand<Exclude<R, import("../types.js").Interaction | import("../types.js").ApplicationCommandDatum>, E>;
|
|
39
39
|
export declare class MessageComponent<R, E> {
|
|
40
40
|
readonly predicate: (customId: string) => Effect<R, E, boolean>;
|
|
41
|
-
readonly handle: Effect<R, E,
|
|
41
|
+
readonly handle: Effect<R, E, InteractionResponse>;
|
|
42
42
|
readonly _tag = "MessageComponent";
|
|
43
|
-
constructor(predicate: (customId: string) => Effect<R, E, boolean>, handle: Effect<R, E,
|
|
43
|
+
constructor(predicate: (customId: string) => Effect<R, E, boolean>, handle: Effect<R, E, InteractionResponse>);
|
|
44
44
|
}
|
|
45
|
-
export declare const messageComponent: <R1, R2, E1, E2>(pred: (customId: string) => import("../common.js").Effect<R1, E1, boolean>, handle: import("../common.js").Effect<R2, E2,
|
|
45
|
+
export declare const messageComponent: <R1, R2, E1, E2>(pred: (customId: string) => import("../common.js").Effect<R1, E1, boolean>, handle: import("../common.js").Effect<R2, E2, InteractionResponse>) => MessageComponent<Exclude<R1, import("../types.js").Interaction | import("../types.js").MessageComponentDatum> | Exclude<R2, import("../types.js").Interaction | import("../types.js").MessageComponentDatum>, E1 | E2>;
|
|
46
46
|
export declare class ModalSubmit<R, E> {
|
|
47
47
|
readonly predicate: (customId: string) => Effect<R, E, boolean>;
|
|
48
|
-
readonly handle: Effect<R, E,
|
|
48
|
+
readonly handle: Effect<R, E, InteractionResponse>;
|
|
49
49
|
readonly _tag = "ModalSubmit";
|
|
50
|
-
constructor(predicate: (customId: string) => Effect<R, E, boolean>, handle: Effect<R, E,
|
|
50
|
+
constructor(predicate: (customId: string) => Effect<R, E, boolean>, handle: Effect<R, E, InteractionResponse>);
|
|
51
51
|
}
|
|
52
|
-
export declare const modalSubmit: <R1, R2, E1, E2>(pred: (customId: string) => import("../common.js").Effect<R1, E1, boolean>, handle: import("../common.js").Effect<R2, E2,
|
|
52
|
+
export declare const modalSubmit: <R1, R2, E1, E2>(pred: (customId: string) => import("../common.js").Effect<R1, E1, boolean>, handle: import("../common.js").Effect<R2, E2, InteractionResponse>) => ModalSubmit<Exclude<R1, import("../types.js").Interaction | import("../types.js").ModalSubmitDatum> | Exclude<R2, import("../types.js").Interaction | import("../types.js").ModalSubmitDatum>, E1 | E2>;
|
|
53
53
|
export declare class Autocomplete<R, E> {
|
|
54
|
-
readonly predicate: (focusedOption: Discord.ApplicationCommandInteractionDataOption) => Effect<R, E, boolean>;
|
|
55
|
-
readonly handle: Effect<R, E,
|
|
54
|
+
readonly predicate: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => Effect<R, E, boolean>;
|
|
55
|
+
readonly handle: Effect<R, E, InteractionResponse>;
|
|
56
56
|
readonly _tag = "Autocomplete";
|
|
57
|
-
constructor(predicate: (focusedOption: Discord.ApplicationCommandInteractionDataOption) => Effect<R, E, boolean>, handle: Effect<R, E,
|
|
57
|
+
constructor(predicate: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => Effect<R, E, boolean>, handle: Effect<R, E, InteractionResponse>);
|
|
58
58
|
}
|
|
59
|
-
export declare const autocomplete: <R1, R2, E1, E2>(pred: (focusedOption: Discord.ApplicationCommandInteractionDataOption) => import("../common.js").Effect<R1, E1, boolean>, handle: import("../common.js").Effect<R2, E2,
|
|
59
|
+
export declare const autocomplete: <R1, R2, E1, E2>(pred: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => import("../common.js").Effect<R1, E1, boolean>, handle: import("../common.js").Effect<R2, E2, InteractionResponse>) => Autocomplete<Exclude<R1, import("../types.js").Interaction | import("../types.js").ApplicationCommandDatum | import("../types.js").ApplicationCommandInteractionDataOption> | Exclude<R2, import("../types.js").Interaction | import("../types.js").ApplicationCommandDatum | import("../types.js").ApplicationCommandInteractionDataOption>, E1 | E2>;
|
|
60
60
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":";AAuCA,MAAM,OAAO,wBAAwB;IAGxB;IACA;IAHF,IAAI,GAAG,0BAA0B,CAAA;IAC1C,YACW,OAAqD,EACrD,
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":";AAuCA,MAAM,OAAO,wBAAwB;IAGxB;IACA;IAHF,IAAI,GAAG,0BAA0B,CAAA;IAC1C,YACW,OAAqD,EACrD,MAAyC;QADzC,YAAO,GAAP,OAAO,CAA8C;QACrD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,OAAU,EACV,MAEqC,EACrC,EAAE,CACF,IAAI,wBAAwB,CAG1B,OAAO,EAAE,MAAa,CAAC,CAAA;AAE3B,MAAM,OAAO,uBAAuB;IAGvB;IACA;IAHF,IAAI,GAAG,yBAAyB,CAAA;IACzC,YACW,OAAoD,EACpD,MAAyC;QADzC,YAAO,GAAP,OAAO,CAA6C;QACpD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,OAAU,EACV,MAEqC,EACrC,EAAE,CACF,IAAI,uBAAuB,CAGzB,OAAO,EAAE,MAAa,CAAC,CAAA;AAE3B,MAAM,OAAO,gBAAgB;IAGhB;IACA;IAHF,IAAI,GAAG,kBAAkB,CAAA;IAClC,YACW,SAAsD,EACtD,MAAyC;QADzC,cAAS,GAAT,SAAS,CAA6C;QACtD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAmD,EACnD,MAA2C,EAC3C,EAAE,CACF,IAAI,gBAAgB,CAGlB,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,WAAW;IAGX;IACA;IAHF,IAAI,GAAG,aAAa,CAAA;IAC7B,YACW,SAAsD,EACtD,MAAyC;QADzC,cAAS,GAAT,SAAS,CAA6C;QACtD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAmD,EACnD,MAA2C,EAC3C,EAAE,CACF,IAAI,WAAW,CAGb,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,YAAY;IAGZ;IAIA;IANF,IAAI,GAAG,cAAc,CAAA;IAC9B,YACW,SAGiB,EACjB,MAAyC;QAJzC,cAAS,GAAT,SAAS,CAGQ;QACjB,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAG4B,EAC5B,MAA2C,EAC3C,EAAE,CACF,IAAI,YAAY,CAQd,IAAW,EAAE,MAAa,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, Rest, Discord, Http } from "dfx/common";
|
|
2
2
|
import { DefinitionNotFound } from "./handlers.js";
|
|
3
3
|
import { InteractionBuilder } from "./index.js";
|
|
4
4
|
export interface RunOpts {
|
|
5
5
|
sync?: boolean;
|
|
6
6
|
}
|
|
7
|
-
export declare const run: <R2, E, E2>(
|
|
7
|
+
export declare const run: <R, R2, E, E2>(postHandler: (effect: import("../common.js").Effect<import("../index.js").DiscordREST | import("../types.js").Interaction | R, import("../Http/index.js").FetchError | import("../Http/index.js").StatusCodeError | import("../Http/index.js").JsonParseError | DefinitionNotFound | E, void>) => import("../common.js").Effect<R2, E2, void>, { sync }?: RunOpts) => (ix: InteractionBuilder<R, E>) => import("../common.js").Effect<import("../index.js").DiscordREST | import("../DiscordGateway/index.js").DiscordGateway | Exclude<R2, import("../types.js").Interaction>, import("../Http/index.js").FetchError | import("../Http/index.js").StatusCodeError | import("../Http/index.js").JsonParseError | E2, void>;
|
package/Interactions/gateway.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "dfx/common";
|
|
3
|
-
import * as tsplus_module_3 from "@fp-ts/data/
|
|
3
|
+
import * as tsplus_module_3 from "@fp-ts/data/Function";
|
|
4
4
|
import * as tsplus_module_4 from "dfx/common-gateway";
|
|
5
5
|
import { handlers } from "./handlers.js";
|
|
6
|
+
import { InteractionContext } from "./index.js";
|
|
6
7
|
import { splitDefinitions } from "./utils.js";
|
|
7
|
-
export const run = (
|
|
8
|
+
export const run = (postHandler, { sync = true } = {}) => (ix) => (() => {
|
|
8
9
|
const { GlobalApplicationCommand, GuildApplicationCommand } = splitDefinitions(ix.definitions);
|
|
9
10
|
return tsplus_module_1.flatMap(application => {
|
|
10
11
|
const globalSync = tsplus_module_2.Rest.rest.bulkOverwriteGlobalApplicationCommands(application.id, {
|
|
@@ -14,7 +15,7 @@ export const run = (catchAll, { sync = true } = {}) => (ix) => (() => {
|
|
|
14
15
|
? tsplus_module_4.Gateway.handleDispatch("GUILD_CREATE", (a) => tsplus_module_2.Rest.rest.bulkOverwriteGuildApplicationCommands(application.id, a.id, GuildApplicationCommand.map((a) => a.command)))
|
|
15
16
|
: tsplus_module_1.unit();
|
|
16
17
|
const handle = handlers(ix.definitions);
|
|
17
|
-
const run = tsplus_module_4.Gateway.handleDispatch("INTERACTION_CREATE", (i) =>
|
|
18
|
+
const run = tsplus_module_4.Gateway.handleDispatch("INTERACTION_CREATE", (i) => tsplus_module_3.pipe(tsplus_module_1.tap((r) => tsplus_module_2.Rest.rest.createInteractionResponse(i.id, i.token, r))(handle[i.type](i)), postHandler, tsplus_module_1.provideService(InteractionContext)(i)));
|
|
18
19
|
return tsplus_module_1.map(() => void 0)(sync ? tsplus_module_1.zipPar(guildSync)(tsplus_module_1.zipPar(globalSync)(run)) : run);
|
|
19
20
|
})(tsplus_module_1.flatMap((a) => a.json)(tsplus_module_2.Rest.rest.getCurrentBotApplicationInformation()));
|
|
20
21
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/Interactions/gateway.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAsB,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/Interactions/gateway.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAsB,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAM7C,MAAM,CAAC,MAAM,GAAG,GACd,CACE,WAUyB,EACzB,EAAE,IAAI,GAAG,IAAI,KAAc,EAAE,EAC7B,EAAE,CACJ,CAAC,EAA4B,EAAE,EAAE;IAE7B,MAAM,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,GACzD,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;mCAE5B,WAAW;QAIjB,MAAM,UAAU,GAAG,gBAAA,IAAI,CAAC,IAAI,CAAC,sCAAsC,CACjE,WAAW,CAAC,EAAE,EACd;YACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SACrE,CACF,CAAA;QAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM;YAC9C,CAAC,CAAC,gBAAA,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3C,gBAAA,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAC7C,WAAW,CAAC,EAAE,EACd,CAAC,CAAC,EAAE,EACJ,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAQ,CACrD,CACF;YACH,CAAC,CAAC,sBAAa,CAAA;QAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;QAEvC,MAAM,GAAG,GAAG,gBAAA,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAC7D,gBAAA,IAAI,CACF,oBAAsB,CAAC,CAAC,EAAE,EAAE,CAC1B,gBAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EADvD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAEhB,EACD,WAAW,EACX,+BAAsB,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAC7C,CACF,CAAA;iDAEC,IAAI,CAAC,CAAC,CAAC,uBAA8B,SAAS,EAAvC,uBAAW,UAAU,EAArB,GAAG,CAAmB,CAAkB,CAAC,CAAC,CAAC,GAAG;OAhCrD,wBAAwD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAArE,gBAAA,IAAI,CAAC,IAAI,CAAC,mCAAmC,EAAE,CAAuB;IAiCxE,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Discord, Effect
|
|
1
|
+
import { Discord, Effect } from "dfx/common";
|
|
2
2
|
import * as D from "./definitions.js";
|
|
3
3
|
export declare class DefinitionNotFound {
|
|
4
4
|
readonly interaction: Discord.Interaction;
|
|
5
5
|
readonly _tag = "DefinitionNotFound";
|
|
6
6
|
constructor(interaction: Discord.Interaction);
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
type Handler<R, E> = Effect<R | Discord.Interaction, E | DefinitionNotFound, Discord.InteractionResponse>;
|
|
9
9
|
export declare const handlers: <R, E>(definitions: D.InteractionDefinition<R, E>[]) => Record<import("../types.js").InteractionType, (i: Discord.Interaction) => Handler<R, E>>;
|
|
10
|
+
export {};
|
package/Interactions/handlers.js
CHANGED
|
@@ -16,33 +16,33 @@ export class DefinitionNotFound {
|
|
|
16
16
|
export const handlers = (definitions) => {
|
|
17
17
|
const { Commands, Autocomplete, MessageComponent, ModalSubmit } = splitDefinitions(definitions);
|
|
18
18
|
return {
|
|
19
|
-
[tsplus_module_1.Discord.InteractionType.PING]: () => tsplus_module_2.
|
|
19
|
+
[tsplus_module_1.Discord.InteractionType.PING]: () => tsplus_module_2.succeed({
|
|
20
20
|
type: tsplus_module_1.Discord.InteractionCallbackType.PONG,
|
|
21
|
-
})
|
|
21
|
+
}),
|
|
22
22
|
[tsplus_module_1.Discord.InteractionType.APPLICATION_COMMAND]: (i) => {
|
|
23
23
|
const data = i.data;
|
|
24
|
-
return tsplus_module_4.pipe(tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (command) => command.handle)(tsplus_module_3.fromNullable(Commands[data.name])), (a) => a, tsplus_module_2.provideService(Ctx.
|
|
24
|
+
return tsplus_module_4.pipe(tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (command) => command.handle)(tsplus_module_3.fromNullable(Commands[data.name])), (a) => a, tsplus_module_2.provideService(Ctx.ApplicationCommandContext)(data));
|
|
25
25
|
},
|
|
26
26
|
[tsplus_module_1.Discord.InteractionType.MODAL_SUBMIT]: (i) => {
|
|
27
27
|
const data = i.data;
|
|
28
28
|
return tsplus_module_4.pipe(ModalSubmit, Arr.map((a) => tsplus_module_2.struct({
|
|
29
29
|
command: tsplus_module_2.succeed(a),
|
|
30
30
|
match: a.predicate(data.custom_id),
|
|
31
|
-
})), (a) => tsplus_module_2.flatMap((a) => tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (a) => a.command.handle)(tsplus_module_5.findFirst((a) => a.match)(a)))(tsplus_module_2.collectAllPar(a)), tsplus_module_2.provideService(Ctx.
|
|
31
|
+
})), (a) => tsplus_module_2.flatMap((a) => tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (a) => a.command.handle)(tsplus_module_5.findFirst((a) => a.match)(a)))(tsplus_module_2.collectAllPar(a)), tsplus_module_2.provideService(Ctx.ModalSubmitContext)(data));
|
|
32
32
|
},
|
|
33
33
|
[tsplus_module_1.Discord.InteractionType.MESSAGE_COMPONENT]: (i) => {
|
|
34
34
|
const data = i.data;
|
|
35
35
|
return tsplus_module_4.pipe(MessageComponent, Arr.map((a) => tsplus_module_2.struct({
|
|
36
36
|
command: tsplus_module_2.succeed(a),
|
|
37
37
|
match: a.predicate(data.custom_id),
|
|
38
|
-
})), (a) => tsplus_module_2.flatMap((a) => tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (a) => a.command.handle)(tsplus_module_5.findFirst((a) => a.match)(a)))(tsplus_module_2.collectAllPar(a)), tsplus_module_2.provideService(Ctx.
|
|
38
|
+
})), (a) => tsplus_module_2.flatMap((a) => tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (a) => a.command.handle)(tsplus_module_5.findFirst((a) => a.match)(a)))(tsplus_module_2.collectAllPar(a)), tsplus_module_2.provideService(Ctx.MessageComponentContext)(data));
|
|
39
39
|
},
|
|
40
40
|
[tsplus_module_1.Discord.InteractionType.APPLICATION_COMMAND_AUTOCOMPLETE]: (i) => {
|
|
41
41
|
const data = i.data;
|
|
42
42
|
return tsplus_module_3.getOrElse(() => tsplus_module_2.fail(new DefinitionNotFound(i)))(tsplus_module_3.map((focusedOption) => tsplus_module_4.pipe(Autocomplete, Arr.map((a) => tsplus_module_2.struct({
|
|
43
43
|
command: tsplus_module_2.succeed(a),
|
|
44
|
-
match: a.predicate(focusedOption),
|
|
45
|
-
})), (a) => tsplus_module_2.flatMap((a) => tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (a) => a.command.handle)(tsplus_module_5.findFirst((a) => a.match)(a)))(tsplus_module_2.collectAllPar(a)), tsplus_module_2.provideService(Ctx.
|
|
44
|
+
match: a.predicate(data, focusedOption),
|
|
45
|
+
})), (a) => tsplus_module_2.flatMap((a) => tsplus_module_3.match(() => tsplus_module_2.fail(new DefinitionNotFound(i)), (a) => a.command.handle)(tsplus_module_5.findFirst((a) => a.match)(a)))(tsplus_module_2.collectAllPar(a)), tsplus_module_2.provideService(Ctx.ApplicationCommandContext)(data), tsplus_module_2.provideService(Ctx.FocusedOptionContext)({ focusedOption })))(tsplus_module_1.IxHelpers.focusedOption(data)));
|
|
46
46
|
},
|
|
47
47
|
};
|
|
48
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/Interactions/handlers.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,OAAO,kBAAkB;IAER;IADZ,IAAI,GAAG,oBAAoB,CAAA;IACpC,YAAqB,WAAgC;QAAhC,gBAAW,GAAX,WAAW,CAAqB;IAAG,CAAC;CAC1D;AAQD,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,WAA4C,EAI5C,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAC7D,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAE/B,OAAO;QACL,CAAC,gBAAA,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/Interactions/handlers.ts"],"names":[],"mappings":"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"}
|
package/Interactions/index.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export declare const builder: InteractionBuilder<never, never>;
|
|
|
14
14
|
export declare const id: (query: string) => (customId: string) => import("../common.js").Effect<never, never, boolean>;
|
|
15
15
|
export declare const idStartsWith: (query: string) => (customId: string) => import("../common.js").Effect<never, never, boolean>;
|
|
16
16
|
export declare const idRegex: (query: RegExp) => (customId: string) => import("../common.js").Effect<never, never, boolean>;
|
|
17
|
-
export declare const option: (command: string, optionName: string) => (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => import("../common.js").Effect<never, never, boolean>;
|
|
18
|
-
export declare const optionOnly: (optionName: string) => (focusedOption: Discord.ApplicationCommandInteractionDataOption) => import("../common.js").Effect<never, never, boolean>;
|
|
17
|
+
export declare const option: (command: string, optionName: string) => (data: Pick<Discord.ApplicationCommandDatum, "name">, focusedOption: Pick<Discord.ApplicationCommandInteractionDataOption, "name">) => import("../common.js").Effect<never, never, boolean>;
|
|
18
|
+
export declare const optionOnly: (optionName: string) => (_: unknown, focusedOption: Pick<Discord.ApplicationCommandInteractionDataOption, "name">) => import("../common.js").Effect<never, never, boolean>;
|
package/Interactions/index.js
CHANGED
|
@@ -36,5 +36,5 @@ export const id = (query) => (customId) => tsplus_module_2.succeed(query === cus
|
|
|
36
36
|
export const idStartsWith = (query) => (customId) => tsplus_module_2.succeed(customId.startsWith(query));
|
|
37
37
|
export const idRegex = (query) => (customId) => tsplus_module_2.succeed(query.test(customId));
|
|
38
38
|
export const option = (command, optionName) => (data, focusedOption) => tsplus_module_2.succeed(data.name === command && focusedOption.name === optionName);
|
|
39
|
-
export const optionOnly = (optionName) => (focusedOption) => tsplus_module_2.succeed(focusedOption.name === optionName);
|
|
39
|
+
export const optionOnly = (optionName) => (_, focusedOption) => tsplus_module_2.succeed(focusedOption.name === optionName);
|
|
40
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":";;AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,GAGb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,eAAe,IAAI,iBAAiB,EACpC,WAAW,IAAI,kBAAkB,EAEjC,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,MAAM,OAAO,kBAAkB;IACR;IAArB,YAAqB,WAA4C;QAA5C,gBAAW,GAAX,WAAW,CAAiC;IAAG,CAAC;IAErE,GAAG,CAAS,UAA2C;QACrD,OAAO,IAAI,kBAAkB,CAAiB;YAC5C,GAAG,IAAI,CAAC,WAAW;YACnB,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;aAC9B,MAAM,CACL,CAAC,CAAC,EAAyC,EAAE,CAC3C,CAAC,CAAC,IAAI,KAAK,0BAA0B,CACxC;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAExB,OAAO,wBAGI,CAAC,GAAG,EAAE,EAAE,CACf,gBAAA,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,GAAG,CAAC,EAAE,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAC/B,CAAC,EANC,wBAEI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAFjB,gBAAA,IAAI,CAAC,IAAI;aACb,mCAAmC,EAAE,CACf,CAKtB,CAAA;IACL,CAAC;IAED,SAAS,CAAC,KAAwB,EAAE,OAA0B;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;aAC9B,MAAM,CACL,CAAC,CAAC,EAAwC,EAAE,CAC1C,CAAC,CAAC,IAAI,KAAK,yBAAyB,CACvC;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAExB,OAAO,gBAAA,IAAI,CAAC,IAAI,CAAC,qCAAqC,CACpD,KAAK,EACL,OAAO,EACP,QAAe,CAChB,CAAA;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAe,EAAE,CAAC,CAAA;AAE/D,UAAU;AACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CACxD,wBAAe,KAAK,KAAK,QAAQ,CAAC,CAAA;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAClE,wBAAe,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAC7D,wBAAe,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,MAAM,GACjB,CAAC,OAAe,EAAE,UAAkB,EAAE,EAAE,CACxC,CACE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":";;AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,GAGb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,eAAe,IAAI,iBAAiB,EACpC,WAAW,IAAI,kBAAkB,EAEjC,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,MAAM,OAAO,kBAAkB;IACR;IAArB,YAAqB,WAA4C;QAA5C,gBAAW,GAAX,WAAW,CAAiC;IAAG,CAAC;IAErE,GAAG,CAAS,UAA2C;QACrD,OAAO,IAAI,kBAAkB,CAAiB;YAC5C,GAAG,IAAI,CAAC,WAAW;YACnB,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;aAC9B,MAAM,CACL,CAAC,CAAC,EAAyC,EAAE,CAC3C,CAAC,CAAC,IAAI,KAAK,0BAA0B,CACxC;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAExB,OAAO,wBAGI,CAAC,GAAG,EAAE,EAAE,CACf,gBAAA,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,GAAG,CAAC,EAAE,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAC/B,CAAC,EANC,wBAEI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAFjB,gBAAA,IAAI,CAAC,IAAI;aACb,mCAAmC,EAAE,CACf,CAKtB,CAAA;IACL,CAAC;IAED,SAAS,CAAC,KAAwB,EAAE,OAA0B;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;aAC9B,MAAM,CACL,CAAC,CAAC,EAAwC,EAAE,CAC1C,CAAC,CAAC,IAAI,KAAK,yBAAyB,CACvC;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAExB,OAAO,gBAAA,IAAI,CAAC,IAAI,CAAC,qCAAqC,CACpD,KAAK,EACL,OAAO,EACP,QAAe,CAChB,CAAA;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAe,EAAE,CAAC,CAAA;AAE/D,UAAU;AACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CACxD,wBAAe,KAAK,KAAK,QAAQ,CAAC,CAAA;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAClE,wBAAe,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAC7D,wBAAe,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,MAAM,GACjB,CAAC,OAAe,EAAE,UAAkB,EAAE,EAAE,CACxC,CACE,IAAmD,EACnD,aAGC,EACD,EAAE,CACF,wBAAe,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,UAAkB,EAAE,EAAE,CACvB,CACE,CAAU,EACV,aAGC,EACD,EAAE,CACF,wBAAe,aAAa,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA"}
|
|
@@ -27,7 +27,6 @@ export interface HandleWebhookOpts<E> {
|
|
|
27
27
|
body: string;
|
|
28
28
|
success: (a: Discord.InteractionResponse) => Effect<never, never, void>;
|
|
29
29
|
error: (e: Cause<E>) => Effect<never, never, void>;
|
|
30
|
-
empty: Effect<never, never, void>;
|
|
31
30
|
}
|
|
32
|
-
export declare const makeHandler: <R, E>(ix: InteractionBuilder<R, E>) => ({ headers, body, success,
|
|
31
|
+
export declare const makeHandler: <R, E>(ix: InteractionBuilder<R, E>) => ({ headers, body, success, error, }: HandleWebhookOpts<DefinitionNotFound | BadWebhookSignature | WebhookParseError | E>) => import("../common.js").Effect<WebhookConfig | Exclude<R, import("../types.js").Interaction>, never, void>;
|
|
33
32
|
export {};
|
package/Interactions/webhook.js
CHANGED
|
@@ -6,6 +6,7 @@ import * as tsplus_module_5 from "@fp-ts/data/Function";
|
|
|
6
6
|
import * as tsplus_module_6 from "@effect/io/Effect";
|
|
7
7
|
import Nacl from "tweetnacl";
|
|
8
8
|
import { handlers } from "./handlers.js";
|
|
9
|
+
import { InteractionContext } from "./index.js";
|
|
9
10
|
import { fromHex } from "./utils.js";
|
|
10
11
|
export class BadWebhookSignature {
|
|
11
12
|
_tag = "BadWebhookSignature";
|
|
@@ -33,10 +34,13 @@ export class WebhookParseError {
|
|
|
33
34
|
const fromHeadersAndBody = (headers, body) => tsplus_module_6.flatMap(({ publicKey }) => tsplus_module_6.flatMap(() => tsplus_module_6.tryCatch(() => JSON.parse(body), (reason) => new WebhookParseError(reason)))(tsplus_module_6.fromEither(checkSignature(publicKey, headers, body))))(tsplus_module_6.service(WebhookConfig));
|
|
34
35
|
const run = (definitions) => {
|
|
35
36
|
const handler = handlers(definitions);
|
|
36
|
-
return (headers, body) => tsplus_module_6.flatMap(interaction =>
|
|
37
|
+
return (headers, body) => tsplus_module_6.flatMap(interaction => {
|
|
38
|
+
const provide = tsplus_module_6.provideService(InteractionContext)(interaction);
|
|
39
|
+
return provide(handler[interaction.type](interaction));
|
|
40
|
+
})(fromHeadersAndBody(headers, body));
|
|
37
41
|
};
|
|
38
42
|
export const makeHandler = (ix) => {
|
|
39
43
|
const handle = run(ix.definitions);
|
|
40
|
-
return ({ headers, body, success,
|
|
44
|
+
return ({ headers, body, success, error, }) => tsplus_module_6.catchAllCause(error)(tsplus_module_6.flatMap(success)(handle(headers, body)));
|
|
41
45
|
};
|
|
42
46
|
//# sourceMappingURL=webhook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAsB,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"@fp-ts/data": "^0.0.20"
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "c66c9a52484a5636639789eb34a7e41562773cec"
|
|
51
51
|
}
|