dfx 0.35.1 → 0.36.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/Cache/prelude.js +2 -2
- package/Cache/prelude.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +5 -4
- package/DiscordGateway/DiscordWS.js +7 -8
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts +1 -1
- package/DiscordGateway/Shard/heartbeats.js +6 -6
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard/invalidSession.d.ts +2 -2
- package/DiscordGateway/Shard/invalidSession.js +5 -5
- package/DiscordGateway/Shard/invalidSession.js.map +1 -1
- package/DiscordGateway/Shard.d.ts +4 -2
- package/DiscordGateway/Shard.js +27 -26
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +6 -3
- package/DiscordGateway/Sharder.js +7 -6
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway/WS.d.ts +3 -3
- package/DiscordGateway/WS.js +4 -4
- package/DiscordGateway/WS.js.map +1 -1
- package/DiscordGateway.d.ts +1 -1
- package/DiscordREST.d.ts +5 -3
- package/DiscordREST.js +6 -5
- package/DiscordREST.js.map +1 -1
- package/Helpers/intents.js +5 -5
- package/Helpers/intents.js.map +1 -1
- package/Helpers/permissions.js +13 -12
- package/Helpers/permissions.js.map +1 -1
- package/Interactions/context.d.ts +2 -0
- package/Interactions/context.js +12 -10
- package/Interactions/context.js.map +1 -1
- package/Interactions/gateway.d.ts +3 -3
- package/Interactions/gateway.js +3 -3
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.js +2 -2
- package/Interactions/handlers.js.map +1 -1
- package/RateLimit.d.ts +3 -2
- package/RateLimit.js +2 -2
- package/RateLimit.js.map +1 -1
- package/global.d.ts +0 -8
- package/package.json +3 -2
- package/webhooks.d.ts +4 -3
- package/webhooks.js +4 -3
- package/webhooks.js.map +1 -1
package/Cache/prelude.js
CHANGED
|
@@ -80,7 +80,7 @@ export const channels = (makeDriver) => tsplus_module_2.flatMap(makeDriver, driv
|
|
|
80
80
|
.fromDispatch("CHANNEL_DELETE"), a => [a.guild_id, a.id]),
|
|
81
81
|
parentRemove: tsplus_module_1.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id),
|
|
82
82
|
}),
|
|
83
|
-
onMiss: id => tsplus_module_2.flatMap(rest.getChannel(id), r => r.json),
|
|
83
|
+
onMiss: (_, id) => tsplus_module_2.flatMap(rest.getChannel(id), r => r.json),
|
|
84
84
|
onParentMiss: guildId => tsplus_module_2.map(tsplus_module_2.flatMap(rest
|
|
85
85
|
.getGuildChannels(guildId), r => r.json), a => a.map(a => [a.id, a])),
|
|
86
86
|
}))));
|
|
@@ -98,7 +98,7 @@ export const roles = (makeDriver) => tsplus_module_2.flatMap(makeDriver, driver
|
|
|
98
98
|
.fromDispatch("GUILD_ROLE_DELETE"), a => [a.guild_id, a.role_id]),
|
|
99
99
|
parentRemove: tsplus_module_1.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id),
|
|
100
100
|
}),
|
|
101
|
-
onMiss: id => tsplus_module_2.fail(new CacheMissError("RolesCache", id)),
|
|
101
|
+
onMiss: (_, id) => tsplus_module_2.fail(new CacheMissError("RolesCache", id)),
|
|
102
102
|
onParentMiss: guildId => tsplus_module_2.map(tsplus_module_2.flatMap(rest
|
|
103
103
|
.getGuildRoles(guildId), r => r.json), a => a.map(a => [a.id, a])),
|
|
104
104
|
}))));
|
package/Cache/prelude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../src/Cache/prelude.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../src/Cache/prelude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="ws" />
|
|
2
2
|
import { Discord, Effect } from "dfx/_common";
|
|
3
|
-
import { WS } from "dfx/gateway";
|
|
4
3
|
import WebSocket from "isomorphic-ws";
|
|
5
|
-
|
|
4
|
+
import { Reconnect, WS } from "dfx/DiscordGateway/WS";
|
|
5
|
+
import { Log } from "dfx/Log";
|
|
6
|
+
export type Message = Discord.GatewayPayload | Reconnect;
|
|
6
7
|
export interface OpenOpts {
|
|
7
8
|
url?: string;
|
|
8
9
|
version?: number;
|
|
@@ -16,7 +17,7 @@ export interface DiscordWSCodec {
|
|
|
16
17
|
}
|
|
17
18
|
export declare const DiscordWSCodec: import("@effect/data/Context").Tag<DiscordWSCodec, DiscordWSCodec>;
|
|
18
19
|
export declare const LiveJsonDiscordWSCodec: import("@effect-http/client/_common").Layer<never, never, DiscordWSCodec>;
|
|
19
|
-
declare const make: import("@effect/io/Effect").Effect<
|
|
20
|
+
declare const make: import("@effect/io/Effect").Effect<Log | WS | DiscordWSCodec, never, {
|
|
20
21
|
readonly connect: ({ url, version, outbound, }: OpenOpts) => import("@effect/io/Effect").Effect<never, never, {
|
|
21
22
|
readonly run: import("@effect/io/Effect").Effect<never, never, never>;
|
|
22
23
|
readonly take: import("@effect/io/Effect").Effect<never, never, import("../types.js").GatewayPayload<any>>;
|
|
@@ -26,5 +27,5 @@ declare const make: import("@effect/io/Effect").Effect<import("../Log.js").Log |
|
|
|
26
27
|
export interface DiscordWS extends Effect.Success<typeof make> {
|
|
27
28
|
}
|
|
28
29
|
export declare const DiscordWS: import("@effect/data/Context").Tag<DiscordWS, DiscordWS>;
|
|
29
|
-
export declare const LiveDiscordWS: import("@effect-http/client/_common").Layer<
|
|
30
|
+
export declare const LiveDiscordWS: import("@effect-http/client/_common").Layer<Log | DiscordWSCodec, never, DiscordWS>;
|
|
30
31
|
export {};
|
|
@@ -3,20 +3,19 @@ import * as tsplus_module_2 from "@effect/io/Layer";
|
|
|
3
3
|
import * as tsplus_module_3 from "@effect/data/Duration";
|
|
4
4
|
import * as tsplus_module_4 from "@effect/io/Schedule";
|
|
5
5
|
import * as tsplus_module_5 from "@effect/io/Effect";
|
|
6
|
-
import * as tsplus_module_6 from "
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import { LiveWS } from "./WS.js";
|
|
6
|
+
import * as tsplus_module_6 from "@effect/io/Ref";
|
|
7
|
+
import { LiveWS, Reconnect, WS } from "dfx/DiscordGateway/WS";
|
|
8
|
+
import { Log } from "dfx/Log";
|
|
10
9
|
export const DiscordWSCodec = tsplus_module_1.Tag();
|
|
11
10
|
export const LiveJsonDiscordWSCodec = tsplus_module_2.succeed(DiscordWSCodec, {
|
|
12
11
|
type: "json",
|
|
13
12
|
encode: p => JSON.stringify(p),
|
|
14
13
|
decode: p => JSON.parse(p.toString("utf8")),
|
|
15
14
|
});
|
|
16
|
-
const make = tsplus_module_5.flatMap(
|
|
17
|
-
const connect = ({ url = "wss://gateway.discord.gg/", version = 10, outbound, }) => tsplus_module_5.flatMap(
|
|
18
|
-
const setUrl = (url) =>
|
|
19
|
-
const takeOutbound = tsplus_module_5.map(outbound, a => a ===
|
|
15
|
+
const make = tsplus_module_5.flatMap(WS, ws => tsplus_module_5.flatMap(DiscordWSCodec, encoding => tsplus_module_5.map(Log, log => {
|
|
16
|
+
const connect = ({ url = "wss://gateway.discord.gg/", version = 10, outbound, }) => tsplus_module_5.flatMap(tsplus_module_6.make(`${url}?v=${version}&encoding=${encoding.type}`), urlRef => {
|
|
17
|
+
const setUrl = (url) => tsplus_module_6.set(urlRef, `${url}?v=${version}&encoding=${encoding.type}`);
|
|
18
|
+
const takeOutbound = tsplus_module_5.map(outbound, a => a === Reconnect ? a : encoding.encode(a));
|
|
20
19
|
return tsplus_module_5.map(ws.connect(urlRef, takeOutbound), socket => {
|
|
21
20
|
const take = tsplus_module_5.map(socket.take, encoding.decode);
|
|
22
21
|
const run = tsplus_module_5.retry(tsplus_module_5.tapError(socket.run, e => log.info("DiscordWS", "ERROR", e)), tsplus_module_4.exponential(tsplus_module_3.seconds(0.5)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordWS.js","sourceRoot":"","sources":["../../src/DiscordGateway/DiscordWS.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiscordWS.js","sourceRoot":"","sources":["../../src/DiscordGateway/DiscordWS.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAgB7B,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAA,GAAG,EAAkB,CAAA;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAc,cAAc,EAAE;IAClE,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAA;AAEF,MAAM,IAAI,2BACK,EAAE,EAAT,EAAE,4BACW,cAAc,EAA3B,QAAQ,wBACA,GAAG,EAAX,GAAG;IAET,MAAM,OAAO,GAAG,CAAC,EACf,GAAG,GAAG,2BAA2B,EACjC,OAAO,GAAG,EAAE,EACZ,QAAQ,GACC,EAAE,EAAE,yBAGT,qBAAS,GAAG,GAAG,MAAM,OAAO,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,EADrD,MAAM;QAGZ,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAC7B,oBAAA,MAAM,EAAK,GAAG,GAAG,MAAM,OAAO,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7D,MAAM,YAAY,GAAG,oBAAA,QAAQ,EAAK,CAAC,CAAC,EAAE,CACpC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CACzC,CAAA;mCACgB,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,EAA3C,MAAM;YACZ,MAAM,IAAI,GAAG,oBAAA,MAAM,CAAC,IAAI,EAAK,QAAQ,CAAC,MAAM,CAAC,CAAA;YAE7C,MAAM,GAAG,GAAG,sBAAA,yBAAA,MAAM,CAAC,GAAG,EACV,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAC1C,4BAAqB,wBAAiB,GAAG,CAAC,CAAC,CAInD,CAAA;YAED,OAAO;gBACL,GAAG;gBACH,IAAI;gBACJ,MAAM;aACE,CAAA;;MACV,CAAA;IAEJ,OAAO,EAAE,OAAO,EAAW,CAAA;IAC3B,CAAA;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAA,GAAG,EAAa,CAAA;AACzC,MAAM,CAAC,MAAM,aAAa,2BAAa,wBAAA,IAAI,EAAS,SAAS,CAAC,EAAjC,MAAM,CAA2B,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Ref, Maybe, Effect, Dequeue, Discord } from "dfx/_common";
|
|
2
|
-
import
|
|
2
|
+
import * as DiscordWS from "dfx/DiscordGateway/DiscordWS";
|
|
3
3
|
export declare const send: (hellos: Dequeue<Discord.GatewayPayload>, acks: Dequeue<Discord.GatewayPayload>, seqRef: Ref<Maybe<number>>, send: (p: DiscordWS.Message) => Effect<never, never, boolean>) => import("@effect/io/Effect").Effect<never, never, never>;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Ref";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/data/Option";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "
|
|
5
|
-
import * as tsplus_module_5 from "
|
|
6
|
-
import * as tsplus_module_6 from "dfx/utils/hub";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/io/Schedule";
|
|
5
|
+
import * as tsplus_module_5 from "dfx/utils/hub";
|
|
7
6
|
import { millis } from "@effect/data/Duration";
|
|
8
7
|
import * as SendEvents from "./sendEvents.js";
|
|
8
|
+
import { Reconnect } from "../WS.js";
|
|
9
9
|
const payload = (ref, seqRef) => tsplus_module_3.tap(tsplus_module_3.map(tsplus_module_1.get(seqRef), a => SendEvents.heartbeat(tsplus_module_2.getOrNull(a))), () => tsplus_module_1.set(ref, false));
|
|
10
|
-
const payloadOrReconnect = (ref, seqRef) => tsplus_module_3.flatMap(tsplus_module_1.get(ref), (acked) => acked ? payload(ref, seqRef) : tsplus_module_3.succeed(
|
|
10
|
+
const payloadOrReconnect = (ref, seqRef) => tsplus_module_3.flatMap(tsplus_module_1.get(ref), (acked) => acked ? payload(ref, seqRef) : tsplus_module_3.succeed(Reconnect));
|
|
11
11
|
export const send = (hellos, acks, seqRef, send) => tsplus_module_3.flatMap(tsplus_module_1.make(true), ackedRef => {
|
|
12
|
-
const heartbeats =
|
|
13
|
-
.take(), () => tsplus_module_1.set(ackedRef, true)), p => tsplus_module_3.schedule(tsplus_module_3.tap(payloadOrReconnect(ackedRef, seqRef), send),
|
|
12
|
+
const heartbeats = tsplus_module_5.foreverSwitch(tsplus_module_3.tap(hellos
|
|
13
|
+
.take(), () => tsplus_module_1.set(ackedRef, true)), p => tsplus_module_3.schedule(tsplus_module_3.tap(payloadOrReconnect(ackedRef, seqRef), send), tsplus_module_4.andThen(tsplus_module_4.duration(millis(p.d.heartbeat_interval * Math.random())), tsplus_module_4.fixed(millis(p.d.heartbeat_interval)))));
|
|
14
14
|
const run = tsplus_module_3.forever(tsplus_module_3.tap(acks.take(), () => tsplus_module_1.set(ackedRef, true)));
|
|
15
15
|
return tsplus_module_3.zipParLeft(run, heartbeats);
|
|
16
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"heartbeats.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,OAAO,GAAG,CAAC,GAAiB,EAAE,MAA0B,EAAE,EAAE,CAChE,oBAAA,wCAAA,MAAM,GACC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,2BAAC,CAAC,EAAW,CAAC,EACvC,GAAG,EAAE,CAAC,oBAAA,GAAG,EAAK,KAAK,CAAC,CAAC,CAAA;AAE9B,MAAM,kBAAkB,GAAG,CAAC,GAAiB,EAAE,MAA0B,EAAE,EAAE,CAC3E,4CAAA,GAAG,GACD,CAAC,KAAK,EAA2C,EAAE,CACjD,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAe,SAAS,CAAC,CAC3D,CAAA;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,MAAuC,EACvC,IAAqC,EACrC,MAA0B,EAC1B,IAA6D,EAC7D,EAAE,yBAEmB,qBAAS,IAAI,CAAC,EAA3B,QAAQ;IAEd,MAAM,UAAU,GAAG,8BAAA,oBAAA,MAAM;SACtB,IAAI,EAAE,EACF,GAAG,EAAE,CAAC,oBAAA,QAAQ,EAAK,IAAI,CAAC,CAAC,EACf,CAAC,CAAC,EAAE,CACjB,yBAAA,oBAAA,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAC7B,IAAI,CAAC,EAER,wBAAA,yBACE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAChD,EAAS,sBAAe,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAC3D,CACJ,CAAA;IAEH,MAAM,GAAG,2BAAG,oBAAA,IAAI,CAAC,IAAI,EAAE,EAAK,GAAG,EAAE,CAAC,oBAAA,QAAQ,EAAK,IAAI,CAAC,CAAC,CAAQ,CAAA;WAEpD,2BAAA,GAAG,EAAY,UAAU,CAAC;EACnC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Discord, Ref, Maybe } from "dfx/_common";
|
|
2
|
-
import {
|
|
3
|
-
export declare const fromPayload: (p: Discord.GatewayPayload, latestReady: Ref<Maybe<Discord.ReadyEvent>>) => import("@effect/io/Effect").Effect<never, never,
|
|
2
|
+
import { Message } from "../DiscordWS.js";
|
|
3
|
+
export declare const fromPayload: (p: Discord.GatewayPayload, latestReady: Ref<Maybe<Discord.ReadyEvent>>) => import("@effect/io/Effect").Effect<never, never, Message>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "
|
|
2
|
-
import * as tsplus_module_2 from "@effect/
|
|
3
|
-
import * as tsplus_module_3 from "@effect/
|
|
4
|
-
import
|
|
5
|
-
export const fromPayload = (p, latestReady) =>
|
|
1
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "@effect/data/Option";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Ref";
|
|
4
|
+
import { Reconnect } from "../WS.js";
|
|
5
|
+
export const fromPayload = (p, latestReady) => tsplus_module_1.map((p.d ? tsplus_module_1.unit() : tsplus_module_3.set(latestReady, tsplus_module_2.none())), () => Reconnect);
|
|
6
6
|
//# sourceMappingURL=invalidSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalidSession.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/invalidSession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"invalidSession.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/invalidSession.ts"],"names":[],"mappings":";;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAyB,EACzB,WAA2C,EAC3C,EAAE,CACF,oBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAa,CAAC,CAAC,CAAC,oBAAA,WAAW,EAAK,sBAAY,CAAC,CAAC,EACnD,GAAY,EAAE,CAAC,SAAS,CACzB,CAAA"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Hub, Discord, Effect } from "dfx/_common";
|
|
2
|
+
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
3
|
+
import { RateLimiter } from "dfx/RateLimit";
|
|
2
4
|
import { DiscordWS } from "./DiscordWS.js";
|
|
3
|
-
export declare const make: import("@effect/io/Effect").Effect<
|
|
5
|
+
export declare const make: import("@effect/io/Effect").Effect<DiscordConfig | RateLimiter | DiscordWS, never, {
|
|
4
6
|
readonly connect: (shard: [id: number, count: number], hub: Hub<Discord.GatewayPayload<Discord.ReceiveEvent>>) => import("@effect/io/Effect").Effect<never, never, {
|
|
5
7
|
readonly run: import("@effect/io/Effect").Effect<never, never, never>;
|
|
6
8
|
readonly send: (p: Discord.GatewayPayload) => import("@effect/io/Effect").Effect<never, never, boolean>;
|
|
@@ -10,4 +12,4 @@ export declare const make: import("@effect/io/Effect").Effect<import("../Discord
|
|
|
10
12
|
export interface Shard extends Effect.Success<typeof make> {
|
|
11
13
|
}
|
|
12
14
|
export declare const Shard: import("@effect/data/Context").Tag<Shard, Shard>;
|
|
13
|
-
export declare const LiveShard: import("@effect-http/client/_common").Layer<
|
|
15
|
+
export declare const LiveShard: import("@effect-http/client/_common").Layer<DiscordConfig | import("../Log.js").Log | import("dfx/RateLimit").RateLimitStore | import("./DiscordWS.js").DiscordWSCodec, never, Shard>;
|
package/DiscordGateway/Shard.js
CHANGED
|
@@ -1,63 +1,64 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "
|
|
2
|
-
import * as tsplus_module_2 from "
|
|
3
|
-
import * as tsplus_module_3 from "
|
|
4
|
-
import * as tsplus_module_4 from "@effect/io/
|
|
5
|
-
import * as tsplus_module_5 from "@effect/
|
|
6
|
-
import * as tsplus_module_6 from "@effect/data/
|
|
7
|
-
import * as tsplus_module_7 from "@effect/
|
|
8
|
-
import
|
|
9
|
-
import
|
|
1
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "dfx/_common";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Config/Secret";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/io/Queue";
|
|
5
|
+
import * as tsplus_module_5 from "@effect/data/Option";
|
|
6
|
+
import * as tsplus_module_6 from "@effect/data/Duration";
|
|
7
|
+
import * as tsplus_module_7 from "@effect/io/Layer";
|
|
8
|
+
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
9
|
+
import { LiveRateLimiter, RateLimiter } from "dfx/RateLimit";
|
|
10
10
|
import { DiscordWS, LiveDiscordWS } from "./DiscordWS.js";
|
|
11
11
|
import * as Heartbeats from "./Shard/heartbeats.js";
|
|
12
12
|
import * as Identify from "./Shard/identify.js";
|
|
13
13
|
import * as InvalidSession from "./Shard/invalidSession.js";
|
|
14
14
|
import * as Utils from "./Shard/utils.js";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
import { Reconnect } from "./WS.js";
|
|
16
|
+
export const make = tsplus_module_1.flatMap(DiscordConfig, ({ token, gateway }) => tsplus_module_1.flatMap(RateLimiter, limiter => tsplus_module_1.map(DiscordWS, dws => {
|
|
17
|
+
const connect = (shard, hub) => tsplus_module_1.flatMap(tsplus_module_4.unbounded(), outboundQueue => {
|
|
18
|
+
const outbound = tsplus_module_1.tap(outboundQueue
|
|
19
|
+
.take(), () => limiter.maybeWait("dfx.shard.send", tsplus_module_6.minutes(1), 120));
|
|
19
20
|
const send = (p) => outboundQueue.offer(p);
|
|
20
|
-
return
|
|
21
|
-
const maybeUpdateUrl = (p) =>
|
|
22
|
-
return
|
|
21
|
+
return tsplus_module_1.flatMap(dws.connect({ outbound }), socket => tsplus_module_1.flatMap(Utils.latest(p => tsplus_module_5.map(tsplus_module_5.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_5.some(p)), p => p.d)), ([latestReady, updateLatestReady]) => tsplus_module_1.flatMap(Utils.latest(p => tsplus_module_5.fromNullable(p.s)), ([latestSequence, updateLatestSequence]) => {
|
|
22
|
+
const maybeUpdateUrl = (p) => tsplus_module_5.match(tsplus_module_5.map(tsplus_module_5.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_5.some(p)), p => p.d), () => tsplus_module_1.unit(), a => socket.setUrl(a.resume_gateway_url));
|
|
23
|
+
return tsplus_module_1.flatMap(tsplus_module_4.unbounded(), hellos => tsplus_module_1.map(tsplus_module_4.unbounded(), acks => {
|
|
23
24
|
// heartbeats
|
|
24
25
|
const heartbeats = Heartbeats.send(hellos, acks, latestSequence, send);
|
|
25
26
|
// identify
|
|
26
27
|
const identify = Identify.identifyOrResume({
|
|
27
|
-
token:
|
|
28
|
+
token: tsplus_module_3.value(token),
|
|
28
29
|
shard,
|
|
29
30
|
intents: gateway.intents,
|
|
30
31
|
presence: gateway.presence,
|
|
31
32
|
}, latestReady, latestSequence);
|
|
32
|
-
const onPayload = (p) =>
|
|
33
|
-
let effect =
|
|
33
|
+
const onPayload = (p) => tsplus_module_1.flatMap(tsplus_module_1.zipPar(tsplus_module_1.zipPar(updateLatestReady(p), updateLatestSequence(p)), maybeUpdateUrl(p)), () => {
|
|
34
|
+
let effect = tsplus_module_1.unit();
|
|
34
35
|
switch (p.op) {
|
|
35
36
|
case 10 /* Discord.GatewayOpcode.HELLO */:
|
|
36
|
-
effect =
|
|
37
|
+
effect = tsplus_module_1.zipPar(tsplus_module_1.tap(identify, send), hellos.offer(p));
|
|
37
38
|
break;
|
|
38
39
|
case 11 /* Discord.GatewayOpcode.HEARTBEAT_ACK */:
|
|
39
40
|
effect = acks.offer(p);
|
|
40
41
|
break;
|
|
41
42
|
case 9 /* Discord.GatewayOpcode.INVALID_SESSION */:
|
|
42
|
-
effect =
|
|
43
|
+
effect = tsplus_module_1.tap(InvalidSession.fromPayload(p, latestReady), send);
|
|
43
44
|
break;
|
|
44
45
|
case 0 /* Discord.GatewayOpcode.DISPATCH */:
|
|
45
46
|
effect = hub.publish(p);
|
|
46
47
|
break;
|
|
47
48
|
}
|
|
48
|
-
return
|
|
49
|
+
return tsplus_module_1.map(effect, () => void 0);
|
|
49
50
|
});
|
|
50
|
-
const run =
|
|
51
|
+
const run = tsplus_module_1.zipParLeft(tsplus_module_1.zipParLeft(tsplus_module_1.forever(tsplus_module_1.flatMap(socket.take, onPayload)), heartbeats), socket.run);
|
|
51
52
|
return {
|
|
52
53
|
run,
|
|
53
54
|
send: (p) => send(p),
|
|
54
|
-
reconnect: send(
|
|
55
|
+
reconnect: send(Reconnect),
|
|
55
56
|
};
|
|
56
57
|
}));
|
|
57
58
|
})));
|
|
58
59
|
});
|
|
59
60
|
return { connect };
|
|
60
61
|
})));
|
|
61
|
-
export const Shard =
|
|
62
|
-
export const LiveShard =
|
|
62
|
+
export const Shard = tsplus_module_2.Tag();
|
|
63
|
+
export const LiveShard = tsplus_module_7.provide(tsplus_module_1.toLayer(make, Shard))((tsplus_module_7.merge(LiveRateLimiter)(LiveDiscordWS)));
|
|
63
64
|
//# sourceMappingURL=Shard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shard.js","sourceRoot":"","sources":["../../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Shard.js","sourceRoot":"","sources":["../../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Effect, Discord, Hub } from "dfx/_common";
|
|
2
|
-
import {
|
|
2
|
+
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
3
|
+
import { DiscordREST } from "dfx/DiscordREST";
|
|
4
|
+
import { RateLimiter } from "../RateLimit.js";
|
|
3
5
|
import { Shard } from "./Shard.js";
|
|
4
|
-
|
|
6
|
+
import { ShardStore } from "./ShardStore.js";
|
|
7
|
+
declare const make: import("@effect/io/Effect").Effect<DiscordREST | DiscordConfig | RateLimiter | Shard | ShardStore, never, {
|
|
5
8
|
readonly run: (hub: Hub<Discord.GatewayPayload<Discord.ReceiveEvent>>) => import("@effect/io/Effect").Effect<never, never, never>;
|
|
6
9
|
}>;
|
|
7
10
|
export interface Sharder extends Effect.Success<typeof make> {
|
|
8
11
|
}
|
|
9
12
|
export declare const Sharder: import("@effect/data/Context").Tag<Sharder, Sharder>;
|
|
10
|
-
export declare const LiveSharder: import("@effect-http/client/_common").Layer<
|
|
13
|
+
export declare const LiveSharder: import("@effect-http/client/_common").Layer<DiscordREST | DiscordConfig | import("../Log.js").Log | import("../RateLimit.js").RateLimitStore | import("./DiscordWS.js").DiscordWSCodec | ShardStore, never, Sharder>;
|
|
11
14
|
export {};
|
|
@@ -5,13 +5,14 @@ import * as tsplus_module_4 from "@effect/io/Deferred";
|
|
|
5
5
|
import * as tsplus_module_5 from "@effect/io/Ref";
|
|
6
6
|
import * as tsplus_module_6 from "@effect/data/Duration";
|
|
7
7
|
import * as tsplus_module_7 from "@effect/data/Option";
|
|
8
|
-
import * as tsplus_module_8 from "
|
|
9
|
-
import * as tsplus_module_9 from "@effect/io/Layer";
|
|
8
|
+
import * as tsplus_module_8 from "@effect/io/Layer";
|
|
10
9
|
import { millis } from "@effect/data/Duration";
|
|
11
|
-
import {
|
|
10
|
+
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
11
|
+
import { DiscordREST } from "dfx/DiscordREST";
|
|
12
|
+
import { LiveRateLimiter, RateLimiter } from "../RateLimit.js";
|
|
12
13
|
import { LiveShard, Shard } from "./Shard.js";
|
|
13
|
-
import {
|
|
14
|
-
const make = tsplus_module_2.flatMap(ShardStore, store => tsplus_module_2.flatMap(
|
|
14
|
+
import { ShardStore } from "./ShardStore.js";
|
|
15
|
+
const make = tsplus_module_2.flatMap(ShardStore, store => tsplus_module_2.flatMap(DiscordREST, rest => tsplus_module_2.flatMap(DiscordConfig, ({ gateway: config }) => tsplus_module_2.flatMap(RateLimiter, limiter => tsplus_module_2.flatMap(Shard, shard => {
|
|
15
16
|
const takeConfig = (totalCount) => tsplus_module_2.map(tsplus_module_5.make(0), currentCount => {
|
|
16
17
|
const claimId = (sharderCount) => tsplus_module_2.flatMap(store
|
|
17
18
|
.claimId({
|
|
@@ -44,5 +45,5 @@ const make = tsplus_module_2.flatMap(ShardStore, store => tsplus_module_2.flatMa
|
|
|
44
45
|
});
|
|
45
46
|
})))));
|
|
46
47
|
export const Sharder = tsplus_module_1.Tag();
|
|
47
|
-
export const LiveSharder =
|
|
48
|
+
export const LiveSharder = tsplus_module_8.provide(tsplus_module_2.toLayer(make, Sharder))((tsplus_module_8.merge(LiveShard)(LiveRateLimiter)));
|
|
48
49
|
//# sourceMappingURL=Sharder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sharder.js","sourceRoot":"","sources":["../../src/DiscordGateway/Sharder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Sharder.js","sourceRoot":"","sources":["../../src/DiscordGateway/Sharder.ts"],"names":[],"mappings":"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"}
|
package/DiscordGateway/WS.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="ws" />
|
|
3
3
|
import { Ref, Enqueue, Effect } from "dfx/_common";
|
|
4
|
-
import { Log } from "dfx";
|
|
4
|
+
import { Log } from "dfx/Log";
|
|
5
5
|
import WebSocket from "isomorphic-ws";
|
|
6
6
|
export declare const Reconnect: unique symbol;
|
|
7
7
|
export type Reconnect = typeof Reconnect;
|
|
@@ -17,7 +17,7 @@ export declare class WebSocketCloseError {
|
|
|
17
17
|
readonly _tag = "WebSocketCloseError";
|
|
18
18
|
constructor(code: number, reason: string);
|
|
19
19
|
}
|
|
20
|
-
declare const make: import("@effect/io/Effect").Effect<
|
|
20
|
+
declare const make: import("@effect/io/Effect").Effect<Log, never, {
|
|
21
21
|
readonly connect: (url: Ref<string>, takeOutbound: Effect<never, never, Message>) => import("@effect/io/Effect").Effect<never, never, {
|
|
22
22
|
readonly run: import("@effect/io/Effect").Effect<never, WebSocketError | WebSocketCloseError, never>;
|
|
23
23
|
readonly take: import("@effect/io/Effect").Effect<never, never, WebSocket.Data>;
|
|
@@ -26,5 +26,5 @@ declare const make: import("@effect/io/Effect").Effect<import("../Log.js").Log,
|
|
|
26
26
|
export interface WS extends Effect.Success<typeof make> {
|
|
27
27
|
}
|
|
28
28
|
export declare const WS: import("@effect/data/Context").Tag<WS, WS>;
|
|
29
|
-
export declare const LiveWS: import("@effect-http/client/_common").Layer<
|
|
29
|
+
export declare const LiveWS: import("@effect-http/client/_common").Layer<Log, never, WS>;
|
|
30
30
|
export {};
|
package/DiscordGateway/WS.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Ref";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Queue";
|
|
4
|
-
import * as tsplus_module_4 from "dfx";
|
|
5
|
-
import
|
|
4
|
+
import * as tsplus_module_4 from "dfx/_common";
|
|
5
|
+
import { Log } from "dfx/Log";
|
|
6
6
|
import WebSocket from "isomorphic-ws";
|
|
7
7
|
export const Reconnect = Symbol();
|
|
8
8
|
export class WebSocketError {
|
|
@@ -55,13 +55,13 @@ const send = (ws, take, log) => tsplus_module_1.forever(tsplus_module_1.tap(tspl
|
|
|
55
55
|
ws.send(data);
|
|
56
56
|
});
|
|
57
57
|
}));
|
|
58
|
-
const make = tsplus_module_1.map(
|
|
58
|
+
const make = tsplus_module_1.map(Log, log => {
|
|
59
59
|
const connect = (url, takeOutbound) => tsplus_module_1.map(tsplus_module_3.unbounded(), queue => {
|
|
60
60
|
const run = tsplus_module_1.scoped(tsplus_module_1.retryWhile(tsplus_module_1.flatMap(socket(url), ws => tsplus_module_1.zipParLeft(offer(ws, queue), send(ws, takeOutbound, log))), e => e._tag === "WebSocketCloseError" && e.code === 1012));
|
|
61
61
|
return { run, take: queue.take() };
|
|
62
62
|
});
|
|
63
63
|
return { connect };
|
|
64
64
|
});
|
|
65
|
-
export const WS =
|
|
65
|
+
export const WS = tsplus_module_4.Tag();
|
|
66
66
|
export const LiveWS = tsplus_module_1.toLayer(make, WS);
|
|
67
67
|
//# sourceMappingURL=WS.js.map
|
package/DiscordGateway/WS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WS.js","sourceRoot":"","sources":["../../src/DiscordGateway/WS.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WS.js","sourceRoot":"","sources":["../../src/DiscordGateway/WS.ts"],"names":[],"mappings":"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"}
|
package/DiscordGateway.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export declare const make: import("@effect/io/Effect").Effect<Sharder, never, {
|
|
|
9
9
|
export interface DiscordGateway extends Effect.Success<typeof make> {
|
|
10
10
|
}
|
|
11
11
|
export declare const DiscordGateway: import("@effect/data/Context").Tag<DiscordGateway, DiscordGateway>;
|
|
12
|
-
export declare const LiveDiscordGateway: import("@effect-http/client/_common").Layer<import("./DiscordREST.js").DiscordREST | import("./DiscordConfig.js").DiscordConfig | import("./
|
|
12
|
+
export declare const LiveDiscordGateway: import("@effect-http/client/_common").Layer<import("./DiscordREST.js").DiscordREST | import("./DiscordConfig.js").DiscordConfig | import("./Log.js").Log | import("./RateLimit.js").RateLimitStore | import("./DiscordGateway/DiscordWS.js").DiscordWSCodec | import("./DiscordGateway/ShardStore.js").ShardStore, never, DiscordGateway>;
|
package/DiscordREST.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { BucketDetails } from "dfx";
|
|
2
1
|
import { Effect, Discord } from "dfx/_common";
|
|
3
2
|
import * as Http from "@effect-http/client";
|
|
3
|
+
import { DiscordConfig } from "./DiscordConfig.js";
|
|
4
4
|
import { ResponseWithData, RestResponse } from "./DiscordREST/types.js";
|
|
5
|
+
import { Log } from "./Log.js";
|
|
6
|
+
import { RateLimitStore, RateLimiter } from "./RateLimit.js";
|
|
5
7
|
export declare class DiscordRESTError {
|
|
6
8
|
readonly error: Http.HttpClientError;
|
|
7
9
|
readonly _tag = "DiscordRESTError";
|
|
8
10
|
constructor(error: Http.HttpClientError);
|
|
9
11
|
}
|
|
10
|
-
declare const make: import("@effect/io/Effect").Effect<
|
|
12
|
+
declare const make: import("@effect/io/Effect").Effect<DiscordConfig | Log | RateLimitStore | RateLimiter | Http.HttpRequestExecutor, never, {
|
|
11
13
|
addGuildMember: (guildId: string, userId: string, params?: Partial<import("./types.js").AddGuildMemberParams> | undefined, options?: Partial<Http.MakeOptions> | undefined) => RestResponse<import("./types.js").GuildMember>;
|
|
12
14
|
addGuildMemberRole: (guildId: string, userId: string, roleId: string, options?: Partial<Http.MakeOptions> | undefined) => RestResponse<any>;
|
|
13
15
|
addThreadMember: (channelId: string, userId: string, options?: Partial<Http.MakeOptions> | undefined) => RestResponse<any>;
|
|
@@ -191,5 +193,5 @@ declare const make: import("@effect/io/Effect").Effect<import("./DiscordConfig.j
|
|
|
191
193
|
export interface DiscordREST extends Effect.Success<typeof make> {
|
|
192
194
|
}
|
|
193
195
|
export declare const DiscordREST: import("@effect/data/Context").Tag<DiscordREST, DiscordREST>;
|
|
194
|
-
export declare const LiveDiscordREST: import("@effect-http/client/_common").Layer<
|
|
196
|
+
export declare const LiveDiscordREST: import("@effect-http/client/_common").Layer<DiscordConfig | Log | RateLimitStore | Http.HttpRequestExecutor, never, DiscordREST>;
|
|
195
197
|
export {};
|
package/DiscordREST.js
CHANGED
|
@@ -7,13 +7,14 @@ import * as tsplus_module_6 from "@effect/io/Config/Secret";
|
|
|
7
7
|
import * as tsplus_module_7 from "@effect-http/client/Request/Executor";
|
|
8
8
|
import * as tsplus_module_8 from "@effect/data/HashSet";
|
|
9
9
|
import * as tsplus_module_9 from "@effect/io/Ref";
|
|
10
|
-
import * as tsplus_module_10 from "
|
|
11
|
-
import * as tsplus_module_11 from "@effect/io/Layer";
|
|
10
|
+
import * as tsplus_module_10 from "@effect/io/Layer";
|
|
12
11
|
import * as Http from "@effect-http/client";
|
|
13
12
|
import { millis } from "@effect/data/Duration";
|
|
13
|
+
import { DiscordConfig } from "./DiscordConfig.js";
|
|
14
14
|
import { rateLimitFromHeaders, retryAfter, routeFromConfig, } from "./DiscordREST/utils.js";
|
|
15
|
+
import { Log } from "./Log.js";
|
|
16
|
+
import { LiveRateLimiter, RateLimitStore, RateLimiter, } from "./RateLimit.js";
|
|
15
17
|
import Pkg from "./package.json" assert { type: "json" };
|
|
16
|
-
import { LiveRateLimiter } from "./RateLimit.js";
|
|
17
18
|
export class DiscordRESTError {
|
|
18
19
|
error;
|
|
19
20
|
_tag = "DiscordRESTError";
|
|
@@ -21,7 +22,7 @@ export class DiscordRESTError {
|
|
|
21
22
|
this.error = error;
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
|
-
const make = tsplus_module_3.flatMap(
|
|
25
|
+
const make = tsplus_module_3.flatMap(DiscordConfig, ({ token, rest }) => tsplus_module_3.flatMap(Http.HttpRequestExecutor, http => tsplus_module_3.flatMap(Log, log => tsplus_module_3.flatMap(RateLimitStore, store => tsplus_module_3.flatMap(RateLimiter, ({ maybeWait }) => {
|
|
25
26
|
const globalRateLimit = maybeWait("dfx.rest.global", rest.globalRateLimit.window, rest.globalRateLimit.limit);
|
|
26
27
|
return tsplus_module_3.map(tsplus_module_9.make(tsplus_module_8.empty()), badRoutesRef => {
|
|
27
28
|
const addBadRoute = (route) => tsplus_module_3.allParDiscard([
|
|
@@ -114,5 +115,5 @@ const make = tsplus_module_3.flatMap(tsplus_module_10.DiscordConfig.DiscordConfi
|
|
|
114
115
|
});
|
|
115
116
|
})))));
|
|
116
117
|
export const DiscordREST = tsplus_module_2.Tag();
|
|
117
|
-
export const LiveDiscordREST =
|
|
118
|
+
export const LiveDiscordREST = tsplus_module_10.provide(tsplus_module_10.effect(DiscordREST, make))(LiveRateLimiter);
|
|
118
119
|
//# sourceMappingURL=DiscordREST.js.map
|
package/DiscordREST.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordREST.js","sourceRoot":"","sources":["../src/DiscordREST.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiscordREST.js","sourceRoot":"","sources":["../src/DiscordREST.ts"],"names":[],"mappings":"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"}
|
package/Helpers/intents.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "dfx/_common";
|
|
2
|
-
import * as
|
|
2
|
+
import * as Flags from "dfx/Helpers/flags";
|
|
3
3
|
/**
|
|
4
4
|
* All the intents
|
|
5
5
|
*/
|
|
6
|
-
export const ALL =
|
|
6
|
+
export const ALL = Flags.all(tsplus_module_1.Discord.GatewayIntents);
|
|
7
7
|
/**
|
|
8
8
|
* Privileged intents
|
|
9
9
|
*/
|
|
@@ -17,13 +17,13 @@ export const UNPRIVILEGED = ALL ^ PRIVILEGED;
|
|
|
17
17
|
/**
|
|
18
18
|
* Function that converts a intents bitfield value to a list of intent names.
|
|
19
19
|
*/
|
|
20
|
-
export const toList =
|
|
20
|
+
export const toList = Flags.toList(tsplus_module_1.Discord.GatewayIntents);
|
|
21
21
|
/**
|
|
22
22
|
* Function that converts a list of intent names to a bitfield value.
|
|
23
23
|
*/
|
|
24
|
-
export const fromList =
|
|
24
|
+
export const fromList = Flags.fromList(tsplus_module_1.Discord.GatewayIntents);
|
|
25
25
|
/**
|
|
26
26
|
* Check if an intent flag exists in the permissions.
|
|
27
27
|
*/
|
|
28
|
-
export const has =
|
|
28
|
+
export const has = Flags.has;
|
|
29
29
|
//# sourceMappingURL=intents.js.map
|
package/Helpers/intents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intents.js","sourceRoot":"","sources":["../../src/Helpers/intents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intents.js","sourceRoot":"","sources":["../../src/Helpers/intents.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAA,OAAO,CAAC,cAAc,CAAC,CAAA;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GACrB,gBAAA,OAAO,CAAC,cAAc,CAAC,eAAe;IACtC,gBAAA,OAAO,CAAC,cAAc,CAAC,aAAa;IACpC,gBAAA,OAAO,CAAC,cAAc,CAAC,eAAe,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,GAAG,UAAU,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAA,OAAO,CAAC,cAAc,CAAC,CAAA;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAA,OAAO,CAAC,cAAc,CAAC,CAAA;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA"}
|
package/Helpers/permissions.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "dfx/_common";
|
|
2
|
-
import * as tsplus_module_2 from "
|
|
3
|
-
import * as tsplus_module_3 from "@effect/
|
|
4
|
-
import * as
|
|
2
|
+
import * as tsplus_module_2 from "@effect/data/Function";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
|
+
import * as Flags from "dfx/Helpers/flags";
|
|
5
|
+
import * as Members from "dfx/Helpers/members";
|
|
5
6
|
/**
|
|
6
7
|
* A constant of all the permissions
|
|
7
8
|
*/
|
|
8
|
-
export const ALL =
|
|
9
|
+
export const ALL = Flags.all(tsplus_module_1.Discord.PermissionFlag);
|
|
9
10
|
/**
|
|
10
11
|
* Check if a flag exists in the permissions.
|
|
11
12
|
*/
|
|
12
|
-
export const has =
|
|
13
|
+
export const has = Flags.hasBigInt;
|
|
13
14
|
/**
|
|
14
15
|
* Convert a permissions bitfield to a list of flag names.
|
|
15
16
|
*/
|
|
16
|
-
export const toList =
|
|
17
|
+
export const toList = Flags.toList(tsplus_module_1.Discord.PermissionFlag);
|
|
17
18
|
/**
|
|
18
19
|
* Convert a list of flag names to a bitfield.
|
|
19
20
|
*/
|
|
20
|
-
export const fromList =
|
|
21
|
+
export const fromList = Flags.fromListBigint(tsplus_module_1.Discord.PermissionFlag);
|
|
21
22
|
/**
|
|
22
23
|
* Reduce a list of roles to a bitfield of all the permissions added together.
|
|
23
24
|
*/
|
|
@@ -25,7 +26,7 @@ export const forRoles = (roles) => roles.reduce((permissions, role) => permissio
|
|
|
25
26
|
/**
|
|
26
27
|
* From a list of roles, calculate the permissions bitfield for the member.
|
|
27
28
|
*/
|
|
28
|
-
export const forMember = (roles) => (member) =>
|
|
29
|
+
export const forMember = (roles) => (member) => tsplus_module_2.pipe(Members.roles(roles)(member), forRoles);
|
|
29
30
|
const overwriteIsForMember = (guildId) => (member) => (overwrite) => {
|
|
30
31
|
if (overwrite.type === 0) {
|
|
31
32
|
return overwrite.id === guildId || member.roles.includes(overwrite.id);
|
|
@@ -46,10 +47,10 @@ export const forChannel = (roles) => ({ guild_id, permission_overwrites: overwri
|
|
|
46
47
|
const hasAdmin = has(tsplus_module_1.Discord.PermissionFlag.ADMINISTRATOR);
|
|
47
48
|
let basePermissions;
|
|
48
49
|
let filteredOverwrites;
|
|
49
|
-
if (
|
|
50
|
+
if (Members.is(memberOrRole)) {
|
|
50
51
|
if (memberOrRole.permissions)
|
|
51
52
|
return BigInt(memberOrRole.permissions);
|
|
52
|
-
const memberRoles =
|
|
53
|
+
const memberRoles = Members.roles(roles)(memberOrRole);
|
|
53
54
|
basePermissions = forRoles(memberRoles);
|
|
54
55
|
filteredOverwrites = overwrites.filter(overwriteIsForMember(guild_id)(memberOrRole));
|
|
55
56
|
}
|
|
@@ -68,11 +69,11 @@ export const forChannel = (roles) => ({ guild_id, permission_overwrites: overwri
|
|
|
68
69
|
* Apply permission overwrites to a bitfield.
|
|
69
70
|
*/
|
|
70
71
|
export const applyOverwrites = (permissions) => (overwrites) => overwrites.reduce((permissions, overwrite) => (permissions & ~BigInt(overwrite.deny)) | BigInt(overwrite.allow), permissions);
|
|
71
|
-
export const hasInChannel = (rolesCache, permission) => (channel, memberOrRole) =>
|
|
72
|
+
export const hasInChannel = (rolesCache, permission) => (channel, memberOrRole) => tsplus_module_3.map(rolesCache.getForParent(channel.guild_id), roles => {
|
|
72
73
|
const channelPerms = forChannel([...roles.values()])(channel)(memberOrRole);
|
|
73
74
|
return has(permission)(channelPerms);
|
|
74
75
|
});
|
|
75
|
-
export const hasInGuild = (rolesCache, permission) => (guildId, member) =>
|
|
76
|
+
export const hasInGuild = (rolesCache, permission) => (guildId, member) => tsplus_module_3.map(rolesCache.getForParent(guildId), roles => {
|
|
76
77
|
const hasPerm = has(permission);
|
|
77
78
|
return member.roles.some(id => {
|
|
78
79
|
const role = roles.get(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/Helpers/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/Helpers/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,3 +49,5 @@ export declare const option: (name: string) => Effect<import("../types.js").Appl
|
|
|
49
49
|
export declare const optionValue: (name: string) => Effect<import("../types.js").ApplicationCommandDatum, RequiredOptionNotFound, string>;
|
|
50
50
|
export declare const optionValueOptional: (name: string) => Effect<import("../types.js").ApplicationCommandDatum, never, import("@effect/data/Option").Option<string>>;
|
|
51
51
|
export declare const modalValues: Effect<import("../types.js").ModalSubmitDatum, never, import("../_common.js").HashMap<string, string | undefined>>;
|
|
52
|
+
export declare const modalValueOption: (name: string) => Effect<import("../types.js").ModalSubmitDatum, never, import("@effect/data/Option").Option<string>>;
|
|
53
|
+
export declare const modalValue: (name: string) => Effect<import("../types.js").ApplicationCommandDatum | import("../types.js").ModalSubmitDatum, RequiredOptionNotFound, string>;
|
package/Interactions/context.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "dfx/_common";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
|
-
import * as tsplus_module_3 from "
|
|
4
|
-
import * as tsplus_module_4 from "@effect/data/Option";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/data/Option";
|
|
5
4
|
import * as Arr from "@effect/data/ReadonlyArray";
|
|
6
5
|
import { EffectTypeId } from "@effect/io/Effect";
|
|
6
|
+
import * as IxHelpers from "dfx/Helpers/interactions";
|
|
7
7
|
export const InteractionContext = tsplus_module_1.Tag();
|
|
8
8
|
export const ApplicationCommandContext = tsplus_module_1.Tag();
|
|
9
9
|
export const MessageComponentContext = tsplus_module_1.Tag();
|
|
@@ -21,8 +21,8 @@ export class ResolvedDataNotFound {
|
|
|
21
21
|
this.name = name;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
export const resolvedValues = (f) => tsplus_module_2.flatMap(InteractionContext, ix =>
|
|
25
|
-
export const resolved = (name, f) => tsplus_module_2.flatMap(InteractionContext, ix =>
|
|
24
|
+
export const resolvedValues = (f) => tsplus_module_2.flatMap(InteractionContext, ix => tsplus_module_3.match(IxHelpers.resolveValues(f)(ix), () => tsplus_module_2.fail(new ResolvedDataNotFound(ix)), tsplus_module_2.succeed));
|
|
25
|
+
export const resolved = (name, f) => tsplus_module_2.flatMap(InteractionContext, ix => tsplus_module_3.match(IxHelpers.resolveOptionValue(name, f)(ix), () => tsplus_module_2.fail(new ResolvedDataNotFound(ix, name)), tsplus_module_2.succeed));
|
|
26
26
|
export const focusedOptionValue = tsplus_module_2.map(FocusedOptionContext, _ => _.focusedOption.value ?? "");
|
|
27
27
|
export class SubCommandNotFound {
|
|
28
28
|
data;
|
|
@@ -31,11 +31,11 @@ export class SubCommandNotFound {
|
|
|
31
31
|
this.data = data;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
export const handleSubCommands = (commands) => tsplus_module_2.flatMap(ApplicationCommandContext, data => tsplus_module_2.flatMap(tsplus_module_2.mapError(Arr.findFirst(
|
|
34
|
+
export const handleSubCommands = (commands) => tsplus_module_2.flatMap(ApplicationCommandContext, data => tsplus_module_2.flatMap(tsplus_module_2.mapError(Arr.findFirst(IxHelpers.allSubCommands(data), _ => !!commands[_.name]), () => new SubCommandNotFound(data)), command => tsplus_module_2.provideService(commands[command.name], SubCommandContext, {
|
|
35
35
|
command,
|
|
36
36
|
})));
|
|
37
37
|
export const currentSubCommand = tsplus_module_2.map(SubCommandContext, _ => _.command);
|
|
38
|
-
export const optionsMap = tsplus_module_2.map(ApplicationCommandContext,
|
|
38
|
+
export const optionsMap = tsplus_module_2.map(ApplicationCommandContext, IxHelpers.optionsMap);
|
|
39
39
|
export class RequiredOptionNotFound {
|
|
40
40
|
data;
|
|
41
41
|
name;
|
|
@@ -45,8 +45,10 @@ export class RequiredOptionNotFound {
|
|
|
45
45
|
this.name = name;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
export const option = (name) => tsplus_module_2.map(ApplicationCommandContext,
|
|
49
|
-
export const optionValue = (name) => tsplus_module_2.flatMap(option(name), _ =>
|
|
50
|
-
export const optionValueOptional = (name) => tsplus_module_2.map(option(name), o =>
|
|
51
|
-
export const modalValues = tsplus_module_2.map(ModalSubmitContext,
|
|
48
|
+
export const option = (name) => tsplus_module_2.map(ApplicationCommandContext, IxHelpers.getOption(name));
|
|
49
|
+
export const optionValue = (name) => tsplus_module_2.flatMap(option(name), _ => tsplus_module_3.match(tsplus_module_3.flatMapNullable(_, a => a.value), () => tsplus_module_2.flatMap(command, data => tsplus_module_2.fail(new RequiredOptionNotFound(data, name))), tsplus_module_2.succeed));
|
|
50
|
+
export const optionValueOptional = (name) => tsplus_module_2.map(option(name), o => tsplus_module_3.flatMapNullable(o, o => o.value));
|
|
51
|
+
export const modalValues = tsplus_module_2.map(ModalSubmitContext, IxHelpers.componentsMap);
|
|
52
|
+
export const modalValueOption = (name) => tsplus_module_2.map(ModalSubmitContext, IxHelpers.componentValue(name));
|
|
53
|
+
export const modalValue = (name) => tsplus_module_2.catchAll(tsplus_module_2.flatMap(ModalSubmitContext, IxHelpers.componentValue(name)), () => tsplus_module_2.flatMap(command, data => tsplus_module_2.fail(new RequiredOptionNotFound(data, name))));
|
|
52
54
|
//# sourceMappingURL=context.js.map
|
|
@@ -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,9 +1,9 @@
|
|
|
1
1
|
import { Effect, Discord } from "dfx/_common";
|
|
2
|
-
import { DiscordREST } from "dfx";
|
|
3
2
|
import * as Http from "@effect-http/client";
|
|
4
3
|
import { DefinitionNotFound } from "./handlers.js";
|
|
5
4
|
import { InteractionBuilder } from "./index.js";
|
|
6
|
-
import { DiscordRESTError } from "dfx/DiscordREST";
|
|
5
|
+
import { DiscordREST, DiscordRESTError } from "dfx/DiscordREST";
|
|
6
|
+
import { DiscordGateway } from "dfx/DiscordGateway";
|
|
7
7
|
export interface RunOpts {
|
|
8
8
|
sync?: boolean;
|
|
9
9
|
}
|
|
@@ -11,4 +11,4 @@ export interface RunOpts {
|
|
|
11
11
|
* @tsplus pipeable dfx/InteractionBuilder runGateway
|
|
12
12
|
* @tsplus location "dfx/Interactions/gateway"
|
|
13
13
|
*/
|
|
14
|
-
export declare const run: <R, R2, E, E2>(postHandler: (effect: import("@effect/io/Effect").Effect<R |
|
|
14
|
+
export declare const run: <R, R2, E, E2>(postHandler: (effect: import("@effect/io/Effect").Effect<R | DiscordREST | import("../types.js").Interaction, E | DiscordRESTError | DefinitionNotFound, void>) => import("@effect/io/Effect").Effect<R2, E2, void>, { sync }?: RunOpts) => (ix: InteractionBuilder<R, E>) => import("@effect/io/Effect").Effect<DiscordREST | DiscordGateway | Exclude<R2, import("../types.js").Interaction>, E2 | DiscordRESTError | Http.ResponseDecodeError, void>;
|
package/Interactions/gateway.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/data/Function";
|
|
3
|
-
import * as tsplus_module_3 from "dfx";
|
|
4
|
-
import * as tsplus_module_4 from "dfx/gateway";
|
|
5
3
|
import * as Http from "@effect-http/client";
|
|
6
4
|
import { handlers } from "./handlers.js";
|
|
7
5
|
import { InteractionContext } from "./index.js";
|
|
8
6
|
import { splitDefinitions } from "./utils.js";
|
|
7
|
+
import { DiscordREST } from "dfx/DiscordREST";
|
|
8
|
+
import { DiscordGateway } from "dfx/DiscordGateway";
|
|
9
9
|
/**
|
|
10
10
|
* @tsplus pipeable dfx/InteractionBuilder runGateway
|
|
11
11
|
*/
|
|
12
12
|
export const run = (postHandler, { sync = true } = {}) => (ix) => (() => {
|
|
13
13
|
const { GlobalApplicationCommand, GuildApplicationCommand } = splitDefinitions(ix.definitions);
|
|
14
|
-
return tsplus_module_1.flatMap(
|
|
14
|
+
return tsplus_module_1.flatMap(DiscordGateway, gateway => tsplus_module_1.flatMap(DiscordREST, rest => tsplus_module_1.flatMap(tsplus_module_1.flatMap(rest.getCurrentBotApplicationInformation(), a => a.json), application => {
|
|
15
15
|
const globalSync = rest.bulkOverwriteGlobalApplicationCommands(application.id, { body: Http.body.json(GlobalApplicationCommand.map(a => a.command)) });
|
|
16
16
|
const guildSync = GuildApplicationCommand.length
|
|
17
17
|
? gateway.handleDispatch("GUILD_CREATE", a => rest.bulkOverwriteGuildApplicationCommands(application.id, a.id, GuildApplicationCommand.map(a => a.command)))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/Interactions/gateway.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/Interactions/gateway.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAsB,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAoB,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAMnD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GACd,CACE,WAMyB,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;mCAEhB,cAAc,EAA1B,OAAO,4BACE,WAAW,EAApB,IAAI,4BAGR,wBAAA,IAAI,CAAC,mCAAmC,EAAE,EAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAD3D,WAAW;QAIjB,MAAM,UAAU,GAAG,IAAI,CAAC,sCAAsC,CAC5D,WAAW,CAAC,EAAE,EACd,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CACvE,CAAA;QAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM;YAC9C,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CACzC,IAAI,CAAC,qCAAqC,CACxC,WAAW,CAAC,EAAE,EACd,CAAC,CAAC,EAAE,EACJ,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAQ,CACnD,CACF;YACH,CAAC,CAAC,sBAAa,CAAA;QAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;QAEvC,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAC3D,+BAAA,gBAAA,IAAI,CACF,oBAAA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAK,CAAC,CAAC,EAAE,CACxB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CACjD,EACD,WAAW,CACZ,EAAgB,kBAAkB,EAAE,CAAC,CAAC,CACxC,CAAA;mCAGC,IAAI;YACF,CAAC,CAAC,uBAAA,uBAAA,uBAAA,GAAG,EAAQ,UAAU,CAAC,EAAQ,SAAS,CAAC,EAAQ,OAAO,CAAC,GAAG,CAAC;YAC9D,CAAC,CAAC,GAAG;;IAET,CAAA"}
|
package/Interactions/handlers.js
CHANGED
|
@@ -2,8 +2,8 @@ import * as tsplus_module_1 from "dfx/_common";
|
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/data/Option";
|
|
4
4
|
import * as tsplus_module_4 from "@effect/data/Function";
|
|
5
|
-
import * as tsplus_module_5 from "dfx";
|
|
6
5
|
import * as Arr from "@effect/data/ReadonlyArray";
|
|
6
|
+
import * as IxHelpers from "dfx/Helpers/interactions";
|
|
7
7
|
import * as Ctx from "./context.js";
|
|
8
8
|
import { splitDefinitions } from "./utils.js";
|
|
9
9
|
export class DefinitionNotFound {
|
|
@@ -48,7 +48,7 @@ export const handlers = (definitions) => {
|
|
|
48
48
|
},
|
|
49
49
|
[4 /* Discord.InteractionType.APPLICATION_COMMAND_AUTOCOMPLETE */]: i => {
|
|
50
50
|
const data = i.data;
|
|
51
|
-
return tsplus_module_3.getOrElse(tsplus_module_3.map(
|
|
51
|
+
return tsplus_module_3.getOrElse(tsplus_module_3.map(IxHelpers.focusedOption(data), focusedOption => tsplus_module_4.pipe(Autocomplete, Arr.map(_ => tsplus_module_2.all({
|
|
52
52
|
command: tsplus_module_2.succeed(_),
|
|
53
53
|
match: _.predicate(data, focusedOption),
|
|
54
54
|
})), _ => tsplus_module_2.provideService(tsplus_module_2.provideService(tsplus_module_2.flatMap(tsplus_module_2.allPar(_), _ => tsplus_module_3.match(Arr.findFirst(_, _ => _.match), () => tsplus_module_2.fail(new DefinitionNotFound(i)), _ => _.command.handle)), Ctx.ApplicationCommandContext, data), Ctx.FocusedOptionContext, { focusedOption }))), () => tsplus_module_2.fail(new DefinitionNotFound(i)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/Interactions/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/Interactions/handlers.ts"],"names":[],"mappings":"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"}
|
package/RateLimit.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect, Maybe, Duration } from "dfx/_common";
|
|
2
|
+
import { Log } from "dfx/Log";
|
|
2
3
|
export type BucketDetails = {
|
|
3
4
|
key: "global" | string;
|
|
4
5
|
resetAfter: number;
|
|
@@ -14,11 +15,11 @@ export interface RateLimitStore {
|
|
|
14
15
|
}
|
|
15
16
|
export declare const RateLimitStore: import("@effect/data/Context").Tag<RateLimitStore, RateLimitStore>;
|
|
16
17
|
export declare const LiveMemoryRateLimitStore: import("@effect-http/client/_common").Layer<never, never, RateLimitStore>;
|
|
17
|
-
declare const makeLimiter: import("@effect/io/Effect").Effect<
|
|
18
|
+
declare const makeLimiter: import("@effect/io/Effect").Effect<Log | RateLimitStore, never, {
|
|
18
19
|
maybeWait: (key: string, window: Duration, limit: number, multiplier?: number) => import("@effect/io/Effect").Effect<never, never, void>;
|
|
19
20
|
}>;
|
|
20
21
|
export interface RateLimiter extends Effect.Success<typeof makeLimiter> {
|
|
21
22
|
}
|
|
22
23
|
export declare const RateLimiter: import("@effect/data/Context").Tag<RateLimiter, RateLimiter>;
|
|
23
|
-
export declare const LiveRateLimiter: import("@effect-http/client/_common").Layer<
|
|
24
|
+
export declare const LiveRateLimiter: import("@effect-http/client/_common").Layer<Log | RateLimitStore, never, RateLimiter>;
|
|
24
25
|
export {};
|
package/RateLimit.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "dfx/_common";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Layer";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "dfx";
|
|
5
4
|
import { delayFrom } from "./RateLimit/utils.js";
|
|
6
5
|
import * as Memory from "./RateLimit/memory.js";
|
|
6
|
+
import { Log } from "dfx/Log";
|
|
7
7
|
export const RateLimitStore = tsplus_module_1.Tag();
|
|
8
8
|
export const LiveMemoryRateLimitStore = tsplus_module_2.sync(RateLimitStore, Memory.make);
|
|
9
|
-
const makeLimiter = tsplus_module_3.flatMap(RateLimitStore, store => tsplus_module_3.map(
|
|
9
|
+
const makeLimiter = tsplus_module_3.flatMap(RateLimitStore, store => tsplus_module_3.map(Log, log => {
|
|
10
10
|
const maybeWait = (key, window, limit, multiplier = 1.05) => {
|
|
11
11
|
const windowMs = window.millis * multiplier;
|
|
12
12
|
return tsplus_module_3.asUnit(tsplus_module_3.tap(tsplus_module_3.tap(tsplus_module_3.map(store
|
package/RateLimit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.js","sourceRoot":"","sources":["../src/RateLimit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RateLimit.js","sourceRoot":"","sources":["../src/RateLimit.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AA+B7B,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAA,GAAG,EAAkB,CAAA;AACnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAW,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;AAE/E,MAAM,WAAW,2BACC,cAAc,EAAxB,KAAK,wBACG,GAAG,EAAX,GAAG;IAET,MAAM,SAAS,GAAG,CAChB,GAAW,EACX,MAAgB,EAChB,KAAa,EACb,UAAU,GAAG,IAAI,EACjB,EAAE;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,CAAA;QAE3C,8BAAO,oBAAA,oBAAA,oBAAA,KAAK;aACT,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAClC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EACzD,CAAC,CAAC,EAAE,CACP,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE;YACpC,GAAG;YACH,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ;YACR,KAAK;YACL,KAAK,EAAE,CAAC,CAAC,MAAM;SAChB,CAAC,CACH,EACI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAa,CAAC,CAAC,CAAC,sBAAa,CAAC,CAAC,CAAC,CAAC,EAAO;IACxE,CAAC,CAAA;IAED,OAAO,EAAE,SAAS,EAAE,CAAA;GACpB,CAAA;AAGF,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAA,GAAG,EAAe,CAAA;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAa,WAAW,EAAE,WAAW,CAAC,CAAA"}
|
package/global.d.ts
CHANGED
|
@@ -10,14 +10,6 @@ import { Tag, Discord } from "dfx/_common";
|
|
|
10
10
|
* @tsplus global
|
|
11
11
|
*/
|
|
12
12
|
import { pipe, flow, identity } from "@effect/data/Function";
|
|
13
|
-
/**
|
|
14
|
-
* @tsplus global
|
|
15
|
-
*/
|
|
16
|
-
import { DiscordConfig, RateLimiter, Log, DiscordREST, BucketDetails, Intents, Ix, RateLimitStore, LiveDiscordREST, LiveMemoryRateLimitStore, LiveRateLimiter, Flags, Members, IxHelpers, Perms, } from "dfx";
|
|
17
|
-
/**
|
|
18
|
-
* @tsplus global
|
|
19
|
-
*/
|
|
20
|
-
import { DiscordWS, Gateway, WS, Shard, ShardStore } from "dfx/gateway";
|
|
21
13
|
/**
|
|
22
14
|
* @tsplus global
|
|
23
15
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"@types/ws": "^8.5.4",
|
|
34
34
|
"dotenv": "^16.0.3",
|
|
35
35
|
"lerna": "^6.6.1",
|
|
36
|
+
"madge": "^6.0.0",
|
|
36
37
|
"typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.171/compiler/typescript.tgz"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
@@ -49,5 +50,5 @@
|
|
|
49
50
|
"ws": "^8.13.0"
|
|
50
51
|
},
|
|
51
52
|
"sideEffects": false,
|
|
52
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "78d5b931cb0c27050205779d710e5aa63ce934a8"
|
|
53
54
|
}
|
package/webhooks.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Config } from "dfx/_common";
|
|
2
|
-
import { DiscordConfig } from "dfx";
|
|
3
2
|
import { MakeConfigOpts } from "./Interactions/webhook.js";
|
|
3
|
+
import * as DiscordConfig from "dfx/DiscordConfig";
|
|
4
|
+
import * as Log from "./Log.js";
|
|
4
5
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "./Interactions/webhook.js";
|
|
5
|
-
export declare const MemoryRateLimit: import("@effect-http/client/_common").Layer<
|
|
6
|
-
export declare const MemoryREST: import("@effect-http/client/_common").Layer<
|
|
6
|
+
export declare const MemoryRateLimit: import("@effect-http/client/_common").Layer<Log.Log, never, import("./RateLimit.js").RateLimiter>;
|
|
7
|
+
export declare const MemoryREST: import("@effect-http/client/_common").Layer<DiscordConfig.DiscordConfig | Log.Log | import("@effect-http/client").HttpRequestExecutor, never, import("./DiscordREST.js").DiscordREST>;
|
|
7
8
|
export declare const makeLiveWithoutFetch: (options: Config.Wrap<DiscordConfig.MakeOpts & MakeConfigOpts>, debug?: boolean) => import("@effect-http/client/_common").Layer<import("@effect-http/client").HttpRequestExecutor, import("./_common.js").ConfigError, import("./DiscordREST.js").DiscordREST | import("./RateLimit.js").RateLimiter | import("./Interactions/webhook.js").WebhookConfig>;
|
|
8
9
|
export declare const makeLive: (config: Config.Wrap<DiscordConfig.MakeOpts & MakeConfigOpts>, debug?: boolean) => import("@effect-http/client/_common").Layer<never, import("./_common.js").ConfigError, import("./DiscordREST.js").DiscordREST | import("./RateLimit.js").RateLimiter | import("./Interactions/webhook.js").WebhookConfig>;
|
package/webhooks.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Layer";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Config";
|
|
3
|
-
import * as tsplus_module_3 from "dfx";
|
|
4
3
|
import { LiveFetchRequestExecutor } from "@effect-http/client";
|
|
5
4
|
import { LiveDiscordREST } from "./DiscordREST.js";
|
|
6
5
|
import { makeFromConfig } from "./Interactions/webhook.js";
|
|
7
6
|
import { LiveMemoryRateLimitStore, LiveRateLimiter } from "./RateLimit.js";
|
|
7
|
+
import * as DiscordConfig from "dfx/DiscordConfig";
|
|
8
|
+
import * as Log from "./Log.js";
|
|
8
9
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "./Interactions/webhook.js";
|
|
9
10
|
export const MemoryRateLimit = tsplus_module_1.provide(LiveRateLimiter)(LiveMemoryRateLimitStore);
|
|
10
11
|
export const MemoryREST = tsplus_module_1.provide(LiveDiscordREST)(LiveMemoryRateLimitStore);
|
|
11
12
|
export const makeLiveWithoutFetch = (options, debug = false) => {
|
|
12
13
|
const config = tsplus_module_2.unwrap(options);
|
|
13
14
|
const LiveWebhook = makeFromConfig(config);
|
|
14
|
-
const LiveLog = debug ?
|
|
15
|
-
const LiveConfig =
|
|
15
|
+
const LiveLog = debug ? Log.LiveLogDebug : Log.LiveLog;
|
|
16
|
+
const LiveConfig = DiscordConfig.makeFromConfig(config);
|
|
16
17
|
const LiveEnv = tsplus_module_1.provide((tsplus_module_1.merge(MemoryRateLimit)(tsplus_module_1.merge(LiveWebhook)(MemoryREST))))((tsplus_module_1.merge(LiveConfig)(LiveLog)));
|
|
17
18
|
return LiveEnv;
|
|
18
19
|
};
|
package/webhooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAkB,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,2BAA+B,eAAe,EAA3C,wBAAwB,CAAmB,CAAA;AAE1E,MAAM,CAAC,MAAM,UAAU,2BAA+B,eAAe,EAA3C,wBAAwB,CAAmB,CAAA;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAA6D,EAC7D,KAAK,GAAG,KAAK,EACb,EAAE;IACF,MAAM,MAAM,GAAG,uBAAc,OAAO,CAAC,CAAA;IAErC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAA;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,OAAO,2BACe,uBAA4B,eAAe,wBAA7B,WAAW,EAAxB,UAAU,GAAiC,EAAtE,uBAAW,UAAU,EAApB,OAAO,EAAc,CAAgD,CAAA;IAExE,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAA4D,EAC5D,KAAK,GAAG,KAAK,EACb,EAAE;IACF,+BAAmC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAA/D,wBAAwB,EAAuC;AACxE,CAAC,CAAA"}
|