dfx 0.21.13 → 0.21.15
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/DiscordConfig/index.d.ts +3 -3
- package/DiscordGateway/Shard/index.js +11 -10
- package/DiscordGateway/Shard/index.js.map +1 -1
- package/DiscordREST/index.js +12 -11
- package/DiscordREST/index.js.map +1 -1
- package/Interactions/webhook.d.ts +2 -2
- package/Interactions/webhook.js +13 -12
- package/Interactions/webhook.js.map +1 -1
- package/README.md +9 -4
- package/_common.d.ts +1 -0
- package/_common.js.map +1 -1
- package/gateway.d.ts +2 -1
- package/gateway.js +6 -0
- package/gateway.js.map +1 -1
- package/global.d.ts +6 -2
- package/package.json +5 -5
- package/webhooks.d.ts +3 -2
- package/webhooks.js +9 -2
- package/webhooks.js.map +1 -1
package/DiscordConfig/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Duration, Discord, Config } from "dfx/_common";
|
|
1
|
+
import { ConfigSecret, Duration, Discord, Config } from "dfx/_common";
|
|
2
2
|
export interface DiscordConfig {
|
|
3
|
-
token:
|
|
3
|
+
token: ConfigSecret;
|
|
4
4
|
rest: {
|
|
5
5
|
baseUrl: string;
|
|
6
6
|
globalRateLimit: {
|
|
@@ -17,7 +17,7 @@ export interface DiscordConfig {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const DiscordConfig: import("../_common.js").Tag<DiscordConfig>;
|
|
19
19
|
export interface MakeOpts {
|
|
20
|
-
token:
|
|
20
|
+
token: ConfigSecret;
|
|
21
21
|
rest?: Partial<DiscordConfig["rest"]>;
|
|
22
22
|
gateway?: Partial<DiscordConfig["gateway"]>;
|
|
23
23
|
}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "dfx/gateway";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/stream/Stream";
|
|
4
|
-
import * as tsplus_module_4 from "
|
|
5
|
-
import * as tsplus_module_5 from "
|
|
6
|
-
import * as tsplus_module_6 from "@fp-ts/data/
|
|
7
|
-
import * as tsplus_module_7 from "@
|
|
8
|
-
import * as tsplus_module_8 from "
|
|
4
|
+
import * as tsplus_module_4 from "@effect/io/Config/Secret";
|
|
5
|
+
import * as tsplus_module_5 from "dfx/_common";
|
|
6
|
+
import * as tsplus_module_6 from "@fp-ts/data/Option";
|
|
7
|
+
import * as tsplus_module_7 from "@fp-ts/data/Duration";
|
|
8
|
+
import * as tsplus_module_8 from "@effect/io/Queue";
|
|
9
|
+
import * as tsplus_module_9 from "dfx";
|
|
9
10
|
import * as Heartbeats from "./heartbeats.js";
|
|
10
11
|
import * as Identify from "./identify.js";
|
|
11
12
|
import * as InvalidSession from "./invalidSession.js";
|
|
12
13
|
import * as Utils from "./utils.js";
|
|
13
14
|
export const make = (shard) => tsplus_module_1.flatMap(({ token, gateway }) => tsplus_module_1.flatMap(limiter => tsplus_module_1.flatMap(outboundQueue => {
|
|
14
|
-
const outbound = tsplus_module_1.tap(() => limiter.maybeWait("dfx.shard.send",
|
|
15
|
+
const outbound = tsplus_module_1.tap(() => limiter.maybeWait("dfx.shard.send", tsplus_module_7.minutes(1), 120))(outboundQueue
|
|
15
16
|
.take());
|
|
16
17
|
const send = (p) => outboundQueue.offer(p);
|
|
17
18
|
return tsplus_module_1.flatMap(socket => tsplus_module_1.flatMap(raw => tsplus_module_1.flatMap(([latestReady, updateLatestReady]) => tsplus_module_1.map(([latestSequence, updateLatestSequence]) => {
|
|
18
|
-
const maybeUpdateUrl = (p) =>
|
|
19
|
+
const maybeUpdateUrl = (p) => tsplus_module_6.match(() => tsplus_module_1.unit(), (a) => socket.setUrl(a.resume_gateway_url))(tsplus_module_6.map((p) => p.d)(tsplus_module_6.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_6.some(p))));
|
|
19
20
|
const updateRefs = tsplus_module_3.runDrain(tsplus_module_3.tap(maybeUpdateUrl)(tsplus_module_3.tap(updateLatestSequence)(tsplus_module_3.tap(updateLatestReady)(raw))));
|
|
20
21
|
// heartbeats
|
|
21
22
|
const heartbeatEffects = tsplus_module_3.runForEach(send)(Heartbeats.fromRaw(raw, latestSequence));
|
|
22
23
|
const dispatch = tsplus_module_3.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */)(raw);
|
|
23
24
|
// identify
|
|
24
25
|
const identifyEffects = tsplus_module_3.runForEach(send)(Identify.fromRaw(raw, {
|
|
25
|
-
token,
|
|
26
|
+
token: tsplus_module_4.value(token),
|
|
26
27
|
shard,
|
|
27
28
|
intents: gateway.intents,
|
|
28
29
|
presence: gateway.presence,
|
|
@@ -38,6 +39,6 @@ export const make = (shard) => tsplus_module_1.flatMap(({ token, gateway }) => t
|
|
|
38
39
|
send: (p) => send(p),
|
|
39
40
|
reconnect: send(tsplus_module_2.WS.Reconnect),
|
|
40
41
|
};
|
|
41
|
-
})(Utils.latest((p) =>
|
|
42
|
-
})(
|
|
42
|
+
})(Utils.latest((p) => tsplus_module_6.fromNullable(p.s))))(Utils.latest((p) => tsplus_module_6.map((p) => p.d)(tsplus_module_6.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_6.some(p))))))(tsplus_module_3.broadcastDynamic(1)(socket.source)))(tsplus_module_2.DiscordWS.make({ outbound }));
|
|
43
|
+
})(tsplus_module_8.unbounded()))(tsplus_module_1.service(tsplus_module_9.RateLimiter)))(tsplus_module_1.service(tsplus_module_9.DiscordConfig.DiscordConfig));
|
|
43
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/index.ts"],"names":[],"mappings":"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"}
|
package/DiscordREST/index.js
CHANGED
|
@@ -2,10 +2,11 @@ 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 "@fp-ts/data/Duration";
|
|
4
4
|
import * as tsplus_module_4 from "@fp-ts/data/Option";
|
|
5
|
-
import * as tsplus_module_5 from "@
|
|
6
|
-
import * as tsplus_module_6 from "@
|
|
7
|
-
import * as tsplus_module_7 from "
|
|
8
|
-
import * as tsplus_module_8 from "
|
|
5
|
+
import * as tsplus_module_5 from "@effect/io/Config/Secret";
|
|
6
|
+
import * as tsplus_module_6 from "@fp-ts/data/HashSet";
|
|
7
|
+
import * as tsplus_module_7 from "@effect/io/Ref";
|
|
8
|
+
import * as tsplus_module_8 from "dfx";
|
|
9
|
+
import * as tsplus_module_9 from "@effect/io/Layer";
|
|
9
10
|
import { millis } from "@fp-ts/data/Duration";
|
|
10
11
|
import Pkg from "../package.json" assert { type: "json" };
|
|
11
12
|
import { rateLimitFromHeaders, retryAfter, routeFromConfig } from "./utils.js";
|
|
@@ -14,11 +15,11 @@ const make = tsplus_module_2.flatMap(http => tsplus_module_2.flatMap(({ token, r
|
|
|
14
15
|
return tsplus_module_2.map(badRoutesRef => {
|
|
15
16
|
const addBadRoute = (route) => tsplus_module_2.collectAllParDiscard([
|
|
16
17
|
log.info("DiscordREST", "addBadRoute", route),
|
|
17
|
-
|
|
18
|
+
tsplus_module_7.update((s) => tsplus_module_6.add(route)(s))(badRoutesRef),
|
|
18
19
|
store.incrementCounter("dfx.rest.invalid", tsplus_module_3.minutes(10).millis, 10000),
|
|
19
20
|
]);
|
|
20
|
-
const isBadRoute = (route) => tsplus_module_2.map((s) =>
|
|
21
|
-
const removeBadRoute = (route) =>
|
|
21
|
+
const isBadRoute = (route) => tsplus_module_2.map((s) => tsplus_module_6.has(route)(s))(tsplus_module_7.get(badRoutesRef));
|
|
22
|
+
const removeBadRoute = (route) => tsplus_module_7.update((s) => tsplus_module_6.remove(route)(s))(badRoutesRef);
|
|
22
23
|
const invalidRateLimit = (route) => tsplus_module_2.asUnit(tsplus_module_2.tap((invalid) => invalid
|
|
23
24
|
? maybeWait("dfx.rest.invalid", tsplus_module_3.minutes(10), 10000)
|
|
24
25
|
: tsplus_module_2.unit())(isBadRoute(route)));
|
|
@@ -76,7 +77,7 @@ const make = tsplus_module_2.flatMap(http => tsplus_module_2.flatMap(({ token, r
|
|
|
76
77
|
...init,
|
|
77
78
|
headers: {
|
|
78
79
|
...(init?.headers ?? {}),
|
|
79
|
-
Authorization: `Bot ${token}`,
|
|
80
|
+
Authorization: `Bot ${tsplus_module_5.value(token)}`,
|
|
80
81
|
"User-Agent": `DiscordBot (https://github.com/tim-smart/dfx, ${Pkg.version})`,
|
|
81
82
|
},
|
|
82
83
|
})))(globalRateLimit))(requestRateLimit(path, init)));
|
|
@@ -114,8 +115,8 @@ const make = tsplus_module_2.flatMap(http => tsplus_module_2.flatMap(({ token, r
|
|
|
114
115
|
});
|
|
115
116
|
});
|
|
116
117
|
return { request, ...routes };
|
|
117
|
-
})(
|
|
118
|
-
})(tsplus_module_2.service(
|
|
118
|
+
})(tsplus_module_7.make(tsplus_module_6.empty()));
|
|
119
|
+
})(tsplus_module_2.service(tsplus_module_8.RateLimiter)))(tsplus_module_2.service(tsplus_module_8.RateLimitStore)))(tsplus_module_2.service(tsplus_module_8.Log.Log)))(tsplus_module_2.service(tsplus_module_8.DiscordConfig.DiscordConfig)))(tsplus_module_2.service(tsplus_module_8.Http));
|
|
119
120
|
export const DiscordREST = tsplus_module_1.Tag();
|
|
120
|
-
export const LiveDiscordREST =
|
|
121
|
+
export const LiveDiscordREST = tsplus_module_9.fromEffect(DiscordREST)(make);
|
|
121
122
|
//# sourceMappingURL=index.js.map
|
package/DiscordREST/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DiscordREST/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DiscordREST/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Config, Discord, Effect, Cause } from "dfx/_common";
|
|
1
|
+
import { ConfigSecret, Config, Discord, Effect, Cause } from "dfx/_common";
|
|
2
2
|
import { DefinitionNotFound } from "./handlers.js";
|
|
3
3
|
import { InteractionBuilder } from "./index.js";
|
|
4
4
|
export declare class BadWebhookSignature {
|
|
@@ -7,7 +7,7 @@ export declare class BadWebhookSignature {
|
|
|
7
7
|
export type Headers = Record<string, string | string[] | undefined>;
|
|
8
8
|
export interface MakeConfigOpts {
|
|
9
9
|
applicationId: string;
|
|
10
|
-
publicKey:
|
|
10
|
+
publicKey: ConfigSecret;
|
|
11
11
|
}
|
|
12
12
|
declare const makeConfig: ({ applicationId, publicKey }: MakeConfigOpts) => {
|
|
13
13
|
applicationId: string;
|
package/Interactions/webhook.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@fp-ts/data/Option";
|
|
2
2
|
import * as tsplus_module_2 from "@fp-ts/data/Either";
|
|
3
|
-
import * as tsplus_module_3 from "
|
|
4
|
-
import * as tsplus_module_4 from "
|
|
5
|
-
import * as tsplus_module_5 from "@
|
|
6
|
-
import * as tsplus_module_6 from "@
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Config/Secret";
|
|
4
|
+
import * as tsplus_module_4 from "dfx/_common";
|
|
5
|
+
import * as tsplus_module_5 from "@effect/io/Layer";
|
|
6
|
+
import * as tsplus_module_6 from "@fp-ts/data/Function";
|
|
7
|
+
import * as tsplus_module_7 from "@effect/io/Effect";
|
|
7
8
|
import Nacl from "tweetnacl";
|
|
8
9
|
import { handlers } from "./handlers.js";
|
|
9
10
|
import { InteractionContext } from "./index.js";
|
|
@@ -20,11 +21,11 @@ const checkSignature = (publicKey, headers, body) => tsplus_module_2.asUnit(tspl
|
|
|
20
21
|
}))));
|
|
21
22
|
const makeConfig = ({ applicationId, publicKey }) => ({
|
|
22
23
|
applicationId,
|
|
23
|
-
publicKey: fromHex(publicKey),
|
|
24
|
+
publicKey: fromHex(tsplus_module_3.value(publicKey)),
|
|
24
25
|
});
|
|
25
|
-
export const WebhookConfig =
|
|
26
|
-
export const makeConfigLayer =
|
|
27
|
-
export const makeFromConfig = (a) =>
|
|
26
|
+
export const WebhookConfig = tsplus_module_4.Tag();
|
|
27
|
+
export const makeConfigLayer = tsplus_module_6.flow(makeConfig, tsplus_module_5.succeed(WebhookConfig));
|
|
28
|
+
export const makeFromConfig = (a) => tsplus_module_7.toLayer(WebhookConfig)(tsplus_module_7.map(makeConfig)(tsplus_module_7.config(a)));
|
|
28
29
|
export class WebhookParseError {
|
|
29
30
|
reason;
|
|
30
31
|
_tag = "WebhookParseError";
|
|
@@ -32,11 +33,11 @@ export class WebhookParseError {
|
|
|
32
33
|
this.reason = reason;
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
const fromHeadersAndBody = (headers, body) =>
|
|
36
|
+
const fromHeadersAndBody = (headers, body) => tsplus_module_7.flatMap(({ publicKey }) => tsplus_module_7.flatMap(() => tsplus_module_7.tryCatch(() => JSON.parse(body), (reason) => new WebhookParseError(reason)))(tsplus_module_7.fromEither(checkSignature(publicKey, headers, body))))(tsplus_module_7.service(WebhookConfig));
|
|
36
37
|
const run = (definitions) => {
|
|
37
38
|
const handler = handlers(definitions);
|
|
38
|
-
return (headers, body) =>
|
|
39
|
-
const provide =
|
|
39
|
+
return (headers, body) => tsplus_module_7.flatMap(interaction => {
|
|
40
|
+
const provide = tsplus_module_7.provideService(InteractionContext)(interaction);
|
|
40
41
|
return provide(handler[interaction.type](interaction));
|
|
41
42
|
})(fromHeadersAndBody(headers, body));
|
|
42
43
|
};
|
|
@@ -45,7 +46,7 @@ const run = (definitions) => {
|
|
|
45
46
|
*/
|
|
46
47
|
export const makeHandler = (ix) => {
|
|
47
48
|
const handle = run(ix.definitions);
|
|
48
|
-
return ({ headers, body, success, error, }) =>
|
|
49
|
+
return ({ headers, body, success, error, }) => tsplus_module_7.catchAllCause(error)(tsplus_module_7.flatMap(success)(handle(headers, body)));
|
|
49
50
|
};
|
|
50
51
|
/**
|
|
51
52
|
* @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# dfx
|
|
2
2
|
|
|
3
|
+
[](https://discord.gg/dtR2Mtu66Q)
|
|
4
|
+
|
|
3
5
|
A Discord library built on top of @effect/io
|
|
4
6
|
|
|
5
7
|
- Supports both the gateway and webhooks
|
|
@@ -8,15 +10,18 @@ A Discord library built on top of @effect/io
|
|
|
8
10
|
## Example
|
|
9
11
|
|
|
10
12
|
```typescript
|
|
13
|
+
import * as Config from "@effect/io/Config"
|
|
11
14
|
import * as Effect from "@effect/io/Effect"
|
|
12
15
|
import { pipe } from "@fp-ts/data/Function"
|
|
13
16
|
import { Ix } from "dfx"
|
|
14
|
-
import { runIx,
|
|
17
|
+
import { runIx, makeFromConfig } from "dfx/gateway"
|
|
15
18
|
|
|
16
19
|
// Create the dependencies layer
|
|
17
|
-
const Dependencies =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
const Dependencies = makeFromConfig(
|
|
21
|
+
Config.struct({
|
|
22
|
+
token: Config.secret("DISCORD_BOT_TOKEN"),
|
|
23
|
+
}),
|
|
24
|
+
)
|
|
20
25
|
|
|
21
26
|
// Create hello command that responds with "Hello!"
|
|
22
27
|
const hello = Ix.global(
|
package/_common.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Schedule as _Schedule } from "@effect/io/Schedule";
|
|
2
2
|
export type { Cause } from "@effect/io/Cause";
|
|
3
3
|
export type { Config } from "@effect/io/Config";
|
|
4
|
+
export type { ConfigSecret } from "@effect/io/Config/Secret";
|
|
4
5
|
export type { ConfigError } from "@effect/io/Config/Error";
|
|
5
6
|
export type { Effect } from "@effect/io/Effect";
|
|
6
7
|
export type { Exit } from "@effect/io/Exit";
|
package/_common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_common.js","sourceRoot":"","sources":["../src/_common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_common.js","sourceRoot":"","sources":["../src/_common.ts"],"names":[],"mappings":"AAeA,OAAO,EAAW,GAAG,EAAE,MAAM,qBAAqB,CAAA;AASlD,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA"}
|
package/gateway.d.ts
CHANGED
|
@@ -12,4 +12,5 @@ export declare const MemoryREST: import("./_common.js").Layer<DiscordConfig.Disc
|
|
|
12
12
|
export declare const MemorySharder: import("./_common.js").Layer<DiscordConfig.DiscordConfig | Log.Log, never, import("./DiscordGateway/Sharder/index.js").Sharder>;
|
|
13
13
|
export declare const MemoryGateway: import("./_common.js").Layer<DiscordConfig.DiscordConfig | Log.Log, never, import("./DiscordGateway/index.js").DiscordGateway>;
|
|
14
14
|
export declare const MemoryBot: import("./_common.js").Layer<DiscordConfig.DiscordConfig | Log.Log, never, import("dfx").DiscordREST | import("dfx").RateLimitStore | import("dfx").RateLimiter | import("./DiscordGateway/index.js").DiscordGateway>;
|
|
15
|
-
export declare const make: (config:
|
|
15
|
+
export declare const make: (config: DiscordConfig.MakeOpts, debug?: boolean) => import("./_common.js").Layer<never, never, import("dfx").DiscordREST | DiscordConfig.DiscordConfig | Log.Log | import("dfx").RateLimitStore | import("dfx").RateLimiter | import("./DiscordGateway/index.js").DiscordGateway>;
|
|
16
|
+
export declare const makeFromConfig: (config: Config<DiscordConfig.MakeOpts>, debug?: boolean) => import("./_common.js").Layer<never, import("./_common.js").ConfigError, import("dfx").DiscordREST | DiscordConfig.DiscordConfig | Log.Log | import("dfx").RateLimitStore | import("dfx").RateLimiter | import("./DiscordGateway/index.js").DiscordGateway>;
|
package/gateway.js
CHANGED
|
@@ -19,6 +19,12 @@ export const MemorySharder = tsplus_module_1.provideTo(LiveSharder)((tsplus_modu
|
|
|
19
19
|
export const MemoryGateway = tsplus_module_1.provideTo(LiveDiscordGateway)(MemorySharder);
|
|
20
20
|
export const MemoryBot = tsplus_module_1.provideToAndMerge(tsplus_module_1.merge(MemoryRateLimit)(MemoryGateway))(MemoryREST);
|
|
21
21
|
export const make = (config, debug = false) => {
|
|
22
|
+
const LiveLog = debug ? Log.LiveLogDebug : Log.LiveLog;
|
|
23
|
+
const LiveConfig = DiscordConfig.makeLayer(config);
|
|
24
|
+
const LiveEnv = tsplus_module_1.provideToAndMerge(MemoryBot)(tsplus_module_1.merge(LiveConfig)(LiveLog));
|
|
25
|
+
return LiveEnv;
|
|
26
|
+
};
|
|
27
|
+
export const makeFromConfig = (config, debug = false) => {
|
|
22
28
|
const LiveLog = debug ? Log.LiveLogDebug : Log.LiveLog;
|
|
23
29
|
const LiveConfig = DiscordConfig.makeFromConfig(config);
|
|
24
30
|
const LiveEnv = tsplus_module_1.provideToAndMerge(MemoryBot)(tsplus_module_1.merge(LiveConfig)(LiveLog));
|
package/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEhF,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,qCAAqC,CAAA;AAChE,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,iCAAiC,CAAA;AACxD,OAAO,KAAK,UAAU,MAAM,sCAAsC,CAAA;AAClE,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,CAAC,MAAM,eAAe,qCAA8B,eAAe,EAA1C,wBAAwB,CAAkB,CAAA;AAEzE,MAAM,CAAC,MAAM,UAAU,6BAAmC,eAAe,EAA/C,uBAAY,eAAe,EAA1B,QAAQ,EAAmB,CAAmB,CAAA;AAEzE,MAAM,CAAC,MAAM,aAAa,6BAKxB,WAAW,EAJX,uBAGE,sBAAsB,wBADtB,eAAe,wBADf,oBAAoB,EADrB,UAAU,IAGc,CACd,CAAA;AAEb,MAAM,CAAC,MAAM,aAAa,6BAAoB,kBAAkB,EAAnC,aAAa,CAAsB,CAAA;AAEhE,MAAM,CAAC,MAAM,SAAS,2DAAgC,eAAe,EAA/B,aAAa,GAA1B,UAAU,CAAkC,CAAA;AAErE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEhF,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,qCAAqC,CAAA;AAChE,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,iCAAiC,CAAA;AACxD,OAAO,KAAK,UAAU,MAAM,sCAAsC,CAAA;AAClE,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,CAAC,MAAM,eAAe,qCAA8B,eAAe,EAA1C,wBAAwB,CAAkB,CAAA;AAEzE,MAAM,CAAC,MAAM,UAAU,6BAAmC,eAAe,EAA/C,uBAAY,eAAe,EAA1B,QAAQ,EAAmB,CAAmB,CAAA;AAEzE,MAAM,CAAC,MAAM,aAAa,6BAKxB,WAAW,EAJX,uBAGE,sBAAsB,wBADtB,eAAe,wBADf,oBAAoB,EADrB,UAAU,IAGc,CACd,CAAA;AAEb,MAAM,CAAC,MAAM,aAAa,6BAAoB,kBAAkB,EAAnC,aAAa,CAAsB,CAAA;AAEhE,MAAM,CAAC,MAAM,SAAS,2DAAgC,eAAe,EAA/B,aAAa,GAA1B,UAAU,CAAkC,CAAA;AAErE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAA8B,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAA;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,OAAO,qCAA0B,SAAS,wBAAtB,UAAU,EAApB,OAAO,EAAyB,CAAA;IAEhD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAAsC,EACtC,KAAK,GAAG,KAAK,EACb,EAAE;IACF,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,qCAA0B,SAAS,wBAAtB,UAAU,EAApB,OAAO,EAAyB,CAAA;IAEhD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
package/global.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @tsplus global
|
|
3
3
|
*/
|
|
4
|
-
import { Cause, Config, ConfigError, Effect, Exit, Layer, Queue, Schedule, Scope, Stream, Chunk, Context,
|
|
4
|
+
import type { Cause, Config, ConfigSecret, ConfigError, Effect, Exit, Layer, Queue, Schedule, Scope, Stream, Chunk, Context, Duration, Equal, Either, HashMap, Maybe, Ref, HashSet, } from "dfx/_common";
|
|
5
|
+
/**
|
|
6
|
+
* @tsplus global
|
|
7
|
+
*/
|
|
8
|
+
import { Tag, Discord } from "dfx/_common";
|
|
5
9
|
/**
|
|
6
10
|
* @tsplus global
|
|
7
11
|
*/
|
|
@@ -9,7 +13,7 @@ import { pipe, flow, identity } from "@fp-ts/data/Function";
|
|
|
9
13
|
/**
|
|
10
14
|
* @tsplus global
|
|
11
15
|
*/
|
|
12
|
-
import { DiscordConfig, RateLimiter, Log, DiscordREST, BucketDetails, FetchError, Http, JsonParseError, RateLimitStore, StatusCodeError, Flags, Members, IxHelpers, } from "dfx";
|
|
16
|
+
import { DiscordConfig, RateLimiter, Log, DiscordREST, BucketDetails, FetchError, Http, Intents, Ix, JsonParseError, RateLimitStore, StatusCodeError, Flags, Members, IxHelpers, Perms, } from "dfx";
|
|
13
17
|
/**
|
|
14
18
|
* @tsplus global
|
|
15
19
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@tim-smart/discord-api-docs-parser": "^0.5.0",
|
|
30
|
-
"@types/ws": "^8.5.
|
|
31
|
-
"lerna": "^6.
|
|
30
|
+
"@types/ws": "^8.5.4",
|
|
31
|
+
"lerna": "^6.4.0",
|
|
32
32
|
"typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.163/compiler/typescript.tgz"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"bufferutil": "^4.0.7",
|
|
42
42
|
"isomorphic-ws": "^5.0.0",
|
|
43
43
|
"utf-8-validate": "^5.0.10",
|
|
44
|
-
"ws": "^8.
|
|
44
|
+
"ws": "^8.12.0"
|
|
45
45
|
},
|
|
46
46
|
"sideEffects": false,
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "469c86c88d6c2dfb1b7ed0fbb1c4bdc49bebec2b"
|
|
48
48
|
}
|
package/webhooks.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Config } from "dfx/_common";
|
|
2
1
|
import { DiscordConfig } from "dfx";
|
|
2
|
+
import { Config } from "dfx/_common";
|
|
3
3
|
import { MakeConfigOpts } from "./Interactions/webhook.js";
|
|
4
4
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "./Interactions/webhook.js";
|
|
5
5
|
export declare const MemoryRateLimit: import("./_common.js").Layer<import("./Log/index.js").Log, never, import("./RateLimit/index.js").RateLimitStore | import("./RateLimit/index.js").RateLimiter>;
|
|
6
6
|
export declare const MemoryREST: import("./_common.js").Layer<import("./DiscordConfig/index.js").DiscordConfig | import("./Log/index.js").Log, never, import("./DiscordREST/index.js").DiscordREST>;
|
|
7
|
-
export declare const make: (config:
|
|
7
|
+
export declare const make: (config: DiscordConfig.MakeOpts & MakeConfigOpts, debug?: boolean) => import("./_common.js").Layer<never, never, import("./DiscordREST/index.js").DiscordREST | import("./RateLimit/index.js").RateLimitStore | import("./RateLimit/index.js").RateLimiter | import("./Interactions/webhook.js").WebhookConfig>;
|
|
8
|
+
export declare const makeFromConfig: (config: Config<DiscordConfig.MakeOpts & MakeConfigOpts>, debug?: boolean) => import("./_common.js").Layer<never, import("./_common.js").ConfigError, import("./DiscordREST/index.js").DiscordREST | import("./RateLimit/index.js").RateLimitStore | import("./RateLimit/index.js").RateLimiter | import("./Interactions/webhook.js").WebhookConfig>;
|
package/webhooks.js
CHANGED
|
@@ -2,13 +2,20 @@ import * as tsplus_module_1 from "@effect/io/Layer";
|
|
|
2
2
|
import * as tsplus_module_2 from "dfx";
|
|
3
3
|
import { LiveDiscordREST } from "./DiscordREST/index.js";
|
|
4
4
|
import { LiveHttp } from "./Http/index.js";
|
|
5
|
-
import { makeFromConfig } from "./Interactions/webhook.js";
|
|
5
|
+
import { makeConfigLayer, makeFromConfig as makeConfigFromConfig, } from "./Interactions/webhook.js";
|
|
6
6
|
import { LiveMemoryRateLimitStore, LiveRateLimiter } from "./RateLimit/index.js";
|
|
7
7
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "./Interactions/webhook.js";
|
|
8
8
|
export const MemoryRateLimit = tsplus_module_1.provideToAndMerge(LiveRateLimiter)(LiveMemoryRateLimitStore);
|
|
9
9
|
export const MemoryREST = tsplus_module_1.provideTo(LiveDiscordREST)((tsplus_module_1.merge(LiveHttp)(MemoryRateLimit)));
|
|
10
10
|
export const make = (config, debug = false) => {
|
|
11
|
-
const LiveWebhook =
|
|
11
|
+
const LiveWebhook = makeConfigLayer(config);
|
|
12
|
+
const LiveLog = debug ? tsplus_module_2.Log.LiveLogDebug : tsplus_module_2.Log.LiveLog;
|
|
13
|
+
const LiveConfig = tsplus_module_2.DiscordConfig.makeLayer(config);
|
|
14
|
+
const LiveEnv = tsplus_module_1.provideTo((tsplus_module_1.merge(MemoryRateLimit)(tsplus_module_1.merge(LiveWebhook)(MemoryREST))))((tsplus_module_1.merge(LiveConfig)(LiveLog)));
|
|
15
|
+
return LiveEnv;
|
|
16
|
+
};
|
|
17
|
+
export const makeFromConfig = (config, debug = false) => {
|
|
18
|
+
const LiveWebhook = makeConfigFromConfig(config);
|
|
12
19
|
const LiveLog = debug ? tsplus_module_2.Log.LiveLogDebug : tsplus_module_2.Log.LiveLog;
|
|
13
20
|
const LiveConfig = tsplus_module_2.DiscordConfig.makeFromConfig(config);
|
|
14
21
|
const LiveEnv = tsplus_module_1.provideTo((tsplus_module_1.merge(MemoryRateLimit)(tsplus_module_1.merge(LiveWebhook)(MemoryREST))))((tsplus_module_1.merge(LiveConfig)(LiveLog)));
|
package/webhooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAEL,eAAe,EACf,cAAc,IAAI,oBAAoB,GACvC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEhF,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,qCAA8B,eAAe,EAA1C,wBAAwB,CAAkB,CAAA;AAEzE,MAAM,CAAC,MAAM,UAAU,6BAAmC,eAAe,EAA/C,uBAAmB,QAAQ,EAA1B,eAAe,EAAY,CAAmB,CAAA;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,MAA+C,EAC/C,KAAK,GAAG,KAAK,EACb,EAAE;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAA,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAA,GAAG,CAAC,OAAO,CAAA;IACtD,MAAM,UAAU,GAAG,gBAAA,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,OAAO,6BACe,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,cAAc,GAAG,CAC5B,MAAuD,EACvD,KAAK,GAAG,KAAK,EACb,EAAE;IACF,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAA,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAA,GAAG,CAAC,OAAO,CAAA;IACtD,MAAM,UAAU,GAAG,gBAAA,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,OAAO,6BACe,uBAA4B,eAAe,wBAA7B,WAAW,EAAxB,UAAU,GAAiC,EAAtE,uBAAW,UAAU,EAApB,OAAO,EAAc,CAAgD,CAAA;IAExE,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|