dfx 0.22.3 → 0.23.1
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.d.ts +2 -2
- package/DiscordGateway/DiscordWS.d.ts +1 -1
- package/DiscordGateway/ShardStore.d.ts +1 -1
- package/DiscordGateway/Sharder.d.ts +1 -1
- package/DiscordGateway.d.ts +1 -1
- package/DiscordREST.d.ts +2 -2
- package/DiscordREST.js +9 -11
- package/DiscordREST.js.map +1 -1
- package/Interactions/webhook.d.ts +2 -2
- package/Log.d.ts +2 -2
- package/RateLimit.d.ts +2 -2
- package/gateway.d.ts +7 -7
- package/gateway.js +5 -7
- package/gateway.js.map +1 -1
- package/package.json +7 -7
- package/webhooks.d.ts +5 -5
- package/webhooks.js +11 -14
- package/webhooks.js.map +1 -1
package/DiscordConfig.d.ts
CHANGED
|
@@ -22,5 +22,5 @@ export interface MakeOpts {
|
|
|
22
22
|
gateway?: Partial<DiscordConfig["gateway"]>;
|
|
23
23
|
}
|
|
24
24
|
export declare const make: ({ token, rest, gateway }: MakeOpts) => DiscordConfig;
|
|
25
|
-
export declare const makeLayer: (a_0: MakeOpts) => import("
|
|
26
|
-
export declare const makeFromConfig: (_: Config.Wrap<MakeOpts>) => import("
|
|
25
|
+
export declare const makeLayer: (a_0: MakeOpts) => import("@effect-http/client/_common").Layer<never, never, DiscordConfig>;
|
|
26
|
+
export declare const makeFromConfig: (_: Config.Wrap<MakeOpts>) => import("@effect-http/client/_common").Layer<never, import("./_common.js").ConfigError, DiscordConfig>;
|
|
@@ -15,7 +15,7 @@ export interface DiscordWSCodec {
|
|
|
15
15
|
decode: (p: WebSocket.Data) => Discord.GatewayPayload;
|
|
16
16
|
}
|
|
17
17
|
export declare const DiscordWSCodec: import("@effect-http/client/_common").Tag<DiscordWSCodec>;
|
|
18
|
-
export declare const LiveJsonDiscordWSCodec: import("
|
|
18
|
+
export declare const LiveJsonDiscordWSCodec: import("@effect-http/client/_common").Layer<never, never, DiscordWSCodec>;
|
|
19
19
|
export declare const make: ({ url, version, outbound, }: OpenOpts) => import("@effect-http/client/_common").Effect<import("../Log.js").Log | DiscordWSCodec, never, {
|
|
20
20
|
source: import("@effect-http/client/_common").Stream<never, never, import("../types.js").GatewayPayload<any>>;
|
|
21
21
|
setUrl: (url: string) => import("@effect-http/client/_common").Effect<never, never, void>;
|
|
@@ -9,4 +9,4 @@ export interface ShardStore {
|
|
|
9
9
|
heartbeat?: (shardId: number) => Effect<never, never, void>;
|
|
10
10
|
}
|
|
11
11
|
export declare const ShardStore: import("@effect-http/client/_common").Tag<ShardStore>;
|
|
12
|
-
export declare const LiveMemoryShardStore: import("
|
|
12
|
+
export declare const LiveMemoryShardStore: import("@effect-http/client/_common").Layer<never, never, ShardStore>;
|
|
@@ -12,5 +12,5 @@ declare const make: import("@effect-http/client/_common").Effect<import("../_com
|
|
|
12
12
|
export interface Sharder extends Effect.Success<typeof make> {
|
|
13
13
|
}
|
|
14
14
|
export declare const Sharder: import("@effect-http/client/_common").Tag<Sharder>;
|
|
15
|
-
export declare const LiveSharder: import("
|
|
15
|
+
export declare const LiveSharder: import("@effect-http/client/_common").Layer<import("../DiscordREST.js").DiscordREST | import("../DiscordConfig.js").DiscordConfig | ShardStore | import("../Log.js").Log | import("../RateLimit.js").RateLimiter | import("./DiscordWS.js").DiscordWSCodec, never, Sharder>;
|
|
16
16
|
export {};
|
package/DiscordGateway.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export declare const make: import("@effect-http/client/_common").Effect<import("
|
|
|
9
9
|
export interface DiscordGateway extends Effect.Success<typeof make> {
|
|
10
10
|
}
|
|
11
11
|
export declare const DiscordGateway: import("@effect-http/client/_common").Tag<DiscordGateway>;
|
|
12
|
-
export declare const LiveDiscordGateway: import("
|
|
12
|
+
export declare const LiveDiscordGateway: import("@effect-http/client/_common").Layer<Sharder, never, DiscordGateway>;
|
package/DiscordREST.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare class DiscordRESTError {
|
|
|
7
7
|
readonly _tag = "DiscordRESTError";
|
|
8
8
|
constructor(error: Http.HttpClientError);
|
|
9
9
|
}
|
|
10
|
-
declare const make: import("@effect-http/client/_common").Effect<import("./DiscordConfig.js").DiscordConfig | import("./Log.js").Log | import("./RateLimit.js").RateLimitStore | import("./RateLimit.js").RateLimiter, never, {
|
|
10
|
+
declare const make: import("@effect-http/client/_common").Effect<import("./DiscordConfig.js").DiscordConfig | Http.executor.HttpRequestExecutor | import("./Log.js").Log | import("./RateLimit.js").RateLimitStore | import("./RateLimit.js").RateLimiter, never, {
|
|
11
11
|
addGuildMember: (guildId: string, userId: string, params?: Partial<import("./types.js").AddGuildMemberParams> | undefined, options?: Partial<Http.MakeOptions> | undefined) => RestResponse<import("./types.js").GuildMember>;
|
|
12
12
|
addGuildMemberRole: (guildId: string, userId: string, roleId: string, options?: Partial<Http.MakeOptions> | undefined) => RestResponse<any>;
|
|
13
13
|
addThreadMember: (channelId: string, userId: string, options?: Partial<Http.MakeOptions> | undefined) => RestResponse<any>;
|
|
@@ -190,5 +190,5 @@ declare const make: import("@effect-http/client/_common").Effect<import("./Disco
|
|
|
190
190
|
export interface DiscordREST extends Effect.Success<typeof make> {
|
|
191
191
|
}
|
|
192
192
|
export declare const DiscordREST: import("@effect-http/client/_common").Tag<DiscordREST>;
|
|
193
|
-
export declare const LiveDiscordREST: import("
|
|
193
|
+
export declare const LiveDiscordREST: import("@effect-http/client/_common").Layer<import("./DiscordConfig.js").DiscordConfig | Http.executor.HttpRequestExecutor | import("./Log.js").Log | import("./RateLimit.js").RateLimitStore | import("./RateLimit.js").RateLimiter, never, DiscordREST>;
|
|
194
194
|
export {};
|
package/DiscordREST.js
CHANGED
|
@@ -3,8 +3,8 @@ import * as tsplus_module_2 from "dfx/_common";
|
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
4
|
import * as tsplus_module_4 from "@effect/data/Duration";
|
|
5
5
|
import * as tsplus_module_5 from "@fp-ts/core/Option";
|
|
6
|
-
import * as tsplus_module_6 from "@effect
|
|
7
|
-
import * as tsplus_module_7 from "@effect/
|
|
6
|
+
import * as tsplus_module_6 from "@effect/io/Config/Secret";
|
|
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
10
|
import * as tsplus_module_10 from "dfx";
|
|
@@ -20,7 +20,7 @@ export class DiscordRESTError {
|
|
|
20
20
|
this.error = error;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
const make = tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.DiscordConfig.DiscordConfig), ({ token, rest }) => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.Log.Log), log => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.RateLimitStore), store => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.RateLimiter), ({ maybeWait }) => {
|
|
23
|
+
const make = tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.DiscordConfig.DiscordConfig), ({ token, rest }) => tsplus_module_3.flatMap(tsplus_module_3.service(Http.executor.HttpRequestExecutor), http => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.Log.Log), log => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.RateLimitStore), store => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.RateLimiter), ({ maybeWait }) => {
|
|
24
24
|
const globalRateLimit = maybeWait("dfx.rest.global", rest.globalRateLimit.window, rest.globalRateLimit.limit);
|
|
25
25
|
return tsplus_module_3.map(tsplus_module_9.make(tsplus_module_8.empty()), badRoutesRef => {
|
|
26
26
|
const addBadRoute = (route) => tsplus_module_3.collectAllParDiscard([
|
|
@@ -66,13 +66,11 @@ const make = tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.Di
|
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
})());
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return tsplus_module_3.flatMap(tsplus_module_3.mapError(tsplus_module_6.fetch_()(requestWithCreds), _ => new DiscordRESTError(_)), response => tsplus_module_3.map(updateBuckets(request, response), () => response));
|
|
75
|
-
})), "DiscordRESTError", e => {
|
|
69
|
+
const httpExecutor = tsplus_module_7.catchAll(_ => tsplus_module_3.fail(new DiscordRESTError(_)))(tsplus_module_7.contramap(_ => tsplus_module_1.setHeaders({
|
|
70
|
+
Authorization: `Bot ${tsplus_module_6.value(token)}`,
|
|
71
|
+
"User-Agent": `DiscordBot (https://github.com/tim-smart/dfx, ${Pkg.version})`,
|
|
72
|
+
})(tsplus_module_1.updateUrl(_ => `${rest.baseUrl}${_}`)(_)))(tsplus_module_7.filterStatus(_ => _ >= 200 && _ < 300)(http.execute)));
|
|
73
|
+
const executor = (request) => tsplus_module_3.catchTag(tsplus_module_3.flatMap(requestRateLimit(request.url, request), () => tsplus_module_3.flatMap(globalRateLimit, () => tsplus_module_3.flatMap(httpExecutor(request), response => tsplus_module_3.map(updateBuckets(request, response), () => response)))), "DiscordRESTError", e => {
|
|
76
74
|
if (e.error._tag !== "StatusCodeError") {
|
|
77
75
|
return tsplus_module_3.fail(e);
|
|
78
76
|
}
|
|
@@ -113,7 +111,7 @@ const make = tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_10.Di
|
|
|
113
111
|
});
|
|
114
112
|
return { executor, ...routes };
|
|
115
113
|
});
|
|
116
|
-
}))));
|
|
114
|
+
})))));
|
|
117
115
|
export const DiscordREST = tsplus_module_2.Tag();
|
|
118
116
|
export const LiveDiscordREST = tsplus_module_11.effect(DiscordREST, make);
|
|
119
117
|
//# sourceMappingURL=DiscordREST.js.map
|
package/DiscordREST.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordREST.js","sourceRoot":"","sources":["../src/DiscordREST.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,GAAG,MAAM,gBAAgB,CAAC,SAAS,IAAI,EAAE,MAAM,EAAE,CAAA;AAExD,MAAM,OAAO,gBAAgB;IAEN;IADZ,IAAI,GAAG,kBAAkB,CAAA;IAClC,YAAqB,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;CACrD;AAED,MAAM,IAAI,2BACkB,wBAAe,iBAAA,aAAa,CAAC,aAAa,CAAC,GAA/D,EAAE,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"DiscordREST.js","sourceRoot":"","sources":["../src/DiscordREST.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ declare const makeConfig: ({ applicationId, publicKey }: MakeConfigOpts) => {
|
|
|
16
16
|
export interface WebhookConfig extends ReturnType<typeof makeConfig> {
|
|
17
17
|
}
|
|
18
18
|
export declare const WebhookConfig: import("@effect-http/client/_common").Tag<WebhookConfig>;
|
|
19
|
-
export declare const makeConfigLayer: (a_0: MakeConfigOpts) => import("
|
|
20
|
-
export declare const makeFromConfig: (a: Config<MakeConfigOpts>) => import("
|
|
19
|
+
export declare const makeConfigLayer: (a_0: MakeConfigOpts) => import("@effect-http/client/_common").Layer<never, never, WebhookConfig>;
|
|
20
|
+
export declare const makeFromConfig: (a: Config<MakeConfigOpts>) => import("@effect-http/client/_common").Layer<never, import("../_common.js").ConfigError, WebhookConfig>;
|
|
21
21
|
export declare class WebhookParseError {
|
|
22
22
|
readonly reason: unknown;
|
|
23
23
|
readonly _tag = "WebhookParseError";
|
package/Log.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ declare const make: (debug?: boolean) => {
|
|
|
5
5
|
export interface Log extends ReturnType<typeof make> {
|
|
6
6
|
}
|
|
7
7
|
export declare const Log: import("@effect-http/client/_common").Tag<Log>;
|
|
8
|
-
export declare const LiveLog: import("
|
|
9
|
-
export declare const LiveLogDebug: import("
|
|
8
|
+
export declare const LiveLog: import("@effect-http/client/_common").Layer<never, never, Log>;
|
|
9
|
+
export declare const LiveLogDebug: import("@effect-http/client/_common").Layer<never, never, Log>;
|
|
10
10
|
export declare const info: (...args: any[]) => import("@effect-http/client/_common").Effect<Log, never, void>;
|
|
11
11
|
export declare const debug: (...args: any[]) => import("@effect-http/client/_common").Effect<Log, never, void>;
|
|
12
12
|
export {};
|
package/RateLimit.d.ts
CHANGED
|
@@ -13,12 +13,12 @@ export interface RateLimitStore {
|
|
|
13
13
|
removeCounter: (key: string) => Effect<never, never, void>;
|
|
14
14
|
}
|
|
15
15
|
export declare const RateLimitStore: import("@effect-http/client/_common").Tag<RateLimitStore>;
|
|
16
|
-
export declare const LiveMemoryRateLimitStore: import("
|
|
16
|
+
export declare const LiveMemoryRateLimitStore: import("@effect-http/client/_common").Layer<never, never, RateLimitStore>;
|
|
17
17
|
declare const makeLimiter: import("@effect-http/client/_common").Effect<import("./Log.js").Log | RateLimitStore, never, {
|
|
18
18
|
maybeWait: (key: string, window: Duration, limit: number, multiplier?: number) => import("@effect-http/client/_common").Effect<never, never, void>;
|
|
19
19
|
}>;
|
|
20
20
|
export interface RateLimiter extends Effect.Success<typeof makeLimiter> {
|
|
21
21
|
}
|
|
22
22
|
export declare const RateLimiter: import("@effect-http/client/_common").Tag<RateLimiter>;
|
|
23
|
-
export declare const LiveRateLimiter: import("
|
|
23
|
+
export declare const LiveRateLimiter: import("@effect-http/client/_common").Layer<import("./Log.js").Log | RateLimitStore, never, RateLimiter>;
|
|
24
24
|
export {};
|
package/gateway.d.ts
CHANGED
|
@@ -7,10 +7,10 @@ export * as Shard from "./DiscordGateway/Shard.js";
|
|
|
7
7
|
export * as ShardStore from "./DiscordGateway/ShardStore.js";
|
|
8
8
|
export * as WS from "./DiscordGateway/WS.js";
|
|
9
9
|
export { run as runIx } from "./Interactions/gateway.js";
|
|
10
|
-
export declare const MemoryRateLimit: import("
|
|
11
|
-
export declare const MemoryREST: import("
|
|
12
|
-
export declare const MemorySharder: import("
|
|
13
|
-
export declare const MemoryGateway: import("
|
|
14
|
-
export declare const MemoryBot: import("
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
10
|
+
export declare const MemoryRateLimit: import("@effect-http/client/_common").Layer<Log.Log, never, import("dfx").RateLimitStore | import("dfx").RateLimiter>;
|
|
11
|
+
export declare const MemoryREST: import("@effect-http/client/_common").Layer<DiscordConfig.DiscordConfig | import("@effect-http/client/Request/Executor").HttpRequestExecutor | Log.Log, never, import("dfx").DiscordREST>;
|
|
12
|
+
export declare const MemorySharder: import("@effect-http/client/_common").Layer<DiscordConfig.DiscordConfig | import("@effect-http/client/Request/Executor").HttpRequestExecutor | Log.Log, never, import("./DiscordGateway/Sharder.js").Sharder>;
|
|
13
|
+
export declare const MemoryGateway: import("@effect-http/client/_common").Layer<DiscordConfig.DiscordConfig | import("@effect-http/client/Request/Executor").HttpRequestExecutor | Log.Log, never, import("./DiscordGateway.js").DiscordGateway>;
|
|
14
|
+
export declare const MemoryBot: import("@effect-http/client/_common").Layer<DiscordConfig.DiscordConfig | import("@effect-http/client/Request/Executor").HttpRequestExecutor | Log.Log, never, import("dfx").DiscordREST | import("dfx").RateLimitStore | import("dfx").RateLimiter | import("./DiscordGateway.js").DiscordGateway>;
|
|
15
|
+
export declare const makeLiveWithoutFetch: (config: ConfigWrap.Wrap<DiscordConfig.MakeOpts>, debug?: boolean) => import("@effect-http/client/_common").Layer<import("@effect-http/client/Request/Executor").HttpRequestExecutor, import("./_common.js").ConfigError, import("dfx").DiscordREST | DiscordConfig.DiscordConfig | Log.Log | import("dfx").RateLimitStore | import("dfx").RateLimiter | import("./DiscordGateway.js").DiscordGateway>;
|
|
16
|
+
export declare const makeLive: (config: ConfigWrap.Wrap<DiscordConfig.MakeOpts>, debug?: boolean) => import("@effect-http/client/_common").Layer<never, import("./_common.js").ConfigError, import("dfx").DiscordREST | DiscordConfig.DiscordConfig | Log.Log | import("dfx").RateLimitStore | import("dfx").RateLimiter | import("./DiscordGateway.js").DiscordGateway>;
|
package/gateway.js
CHANGED
|
@@ -6,6 +6,7 @@ import { LiveDiscordGateway } from "./DiscordGateway.js";
|
|
|
6
6
|
import { LiveSharder } from "./DiscordGateway/Sharder.js";
|
|
7
7
|
import { LiveMemoryShardStore } from "./DiscordGateway/ShardStore.js";
|
|
8
8
|
import { LiveMemoryRateLimitStore, LiveRateLimiter } from "./RateLimit.js";
|
|
9
|
+
import { LiveFetchRequestExecutor } from "@effect-http/client";
|
|
9
10
|
export * as CachePrelude from "./Cache/prelude.js";
|
|
10
11
|
export * as DiscordWS from "./DiscordGateway/DiscordWS.js";
|
|
11
12
|
export * as Gateway from "./DiscordGateway.js";
|
|
@@ -18,16 +19,13 @@ export const MemoryREST = tsplus_module_1.provide(LiveDiscordREST)(MemoryRateLim
|
|
|
18
19
|
export const MemorySharder = tsplus_module_1.provide(LiveSharder)((tsplus_module_1.merge(LiveJsonDiscordWSCodec)(tsplus_module_1.merge(MemoryRateLimit)(tsplus_module_1.merge(LiveMemoryShardStore)(MemoryREST)))));
|
|
19
20
|
export const MemoryGateway = tsplus_module_1.provide(LiveDiscordGateway)(MemorySharder);
|
|
20
21
|
export const MemoryBot = tsplus_module_1.provideMerge(tsplus_module_1.merge(MemoryRateLimit)(MemoryGateway))(MemoryREST);
|
|
21
|
-
export const
|
|
22
|
-
const LiveLog = debug ? Log.LiveLogDebug : Log.LiveLog;
|
|
23
|
-
const LiveConfig = DiscordConfig.makeLayer(config);
|
|
24
|
-
const LiveEnv = tsplus_module_1.provideMerge(MemoryBot)(tsplus_module_1.merge(LiveConfig)(LiveLog));
|
|
25
|
-
return LiveEnv;
|
|
26
|
-
};
|
|
27
|
-
export const makeFromConfig = (config, debug = false) => {
|
|
22
|
+
export const makeLiveWithoutFetch = (config, debug = false) => {
|
|
28
23
|
const LiveLog = debug ? Log.LiveLogDebug : Log.LiveLog;
|
|
29
24
|
const LiveConfig = DiscordConfig.makeFromConfig(tsplus_module_2.ConfigWrap.unwrap(config));
|
|
30
25
|
const LiveEnv = tsplus_module_1.provideMerge(MemoryBot)(tsplus_module_1.merge(LiveConfig)(LiveLog));
|
|
31
26
|
return LiveEnv;
|
|
32
27
|
};
|
|
28
|
+
export const makeLive = (config, debug = false) => {
|
|
29
|
+
return tsplus_module_1.provide(makeLiveWithoutFetch(config, debug))(LiveFetchRequestExecutor);
|
|
30
|
+
};
|
|
33
31
|
//# sourceMappingURL=gateway.js.map
|
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,+BAA+B,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;
|
|
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,+BAA+B,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,CAAC,MAAM,eAAe,gCAA8B,eAAe,EAA1C,wBAAwB,CAAkB,CAAA;AAEzE,MAAM,CAAC,MAAM,UAAU,2BAAsB,eAAe,EAAlC,eAAe,CAAmB,CAAA;AAE5D,MAAM,CAAC,MAAM,aAAa,2BAKxB,WAAW,EAJX,uBAGE,sBAAsB,wBADtB,eAAe,wBADf,oBAAoB,EADrB,UAAU,IAGc,CACd,CAAA;AAEb,MAAM,CAAC,MAAM,aAAa,2BAAoB,kBAAkB,EAAnC,aAAa,CAAsB,CAAA;AAEhE,MAAM,CAAC,MAAM,SAAS,sDAAgC,eAAe,EAA/B,aAAa,GAA1B,UAAU,CAAkC,CAAA;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAA+C,EAC/C,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,gBAAA,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,OAAO,gCAA0B,SAAS,wBAAtB,UAAU,EAApB,OAAO,EAAyB,CAAA;IAEhD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAA+C,EAC/C,KAAK,GAAG,KAAK,EACb,EAAE;IACF,+BAAmC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAA/D,wBAAwB,EAAuC;AACxE,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@tim-smart/discord-api-docs-parser": "^0.5.0",
|
|
30
|
-
"@tsplus-types/effect__data": "0.1.
|
|
30
|
+
"@tsplus-types/effect__data": "0.1.2-da5519d",
|
|
31
31
|
"@tsplus-types/effect__io": "0.1.11-da5519d",
|
|
32
32
|
"@tsplus-types/effect__stream": "0.3.0-da5519d",
|
|
33
33
|
"@tsplus-types/fp-ts__core": "0.2.1-da5519d",
|
|
34
34
|
"@tsplus-types/fp-ts__schema": "0.1.3-da5519d",
|
|
35
35
|
"@types/ws": "^8.5.4",
|
|
36
36
|
"dotenv": "^16.0.3",
|
|
37
|
-
"lerna": "^6.
|
|
37
|
+
"lerna": "^6.5.0",
|
|
38
38
|
"typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.168/compiler/typescript.tgz"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@effect-http/client": "^0.2.
|
|
42
|
-
"@effect/data": "^0.1.
|
|
41
|
+
"@effect-http/client": "^0.2.3",
|
|
42
|
+
"@effect/data": "^0.1.2",
|
|
43
43
|
"@effect/io": "~0.1.11",
|
|
44
44
|
"@effect/stream": "~0.3.0",
|
|
45
45
|
"@fp-ts/core": "^0.2.1",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"bufferutil": "^4.0.7",
|
|
50
50
|
"isomorphic-ws": "^5.0.0",
|
|
51
51
|
"utf-8-validate": "^6.0.2",
|
|
52
|
-
"ws": "^8.12.
|
|
52
|
+
"ws": "^8.12.1"
|
|
53
53
|
},
|
|
54
54
|
"sideEffects": false,
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "dd848e717d2055b531b0110081c45af819ac4b2d"
|
|
56
56
|
}
|
package/webhooks.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DiscordConfig } from "dfx";
|
|
2
1
|
import { ConfigWrap } from "dfx/_common";
|
|
2
|
+
import { DiscordConfig } from "dfx";
|
|
3
3
|
import { MakeConfigOpts } from "./Interactions/webhook.js";
|
|
4
4
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "./Interactions/webhook.js";
|
|
5
|
-
export declare const MemoryRateLimit: import("
|
|
6
|
-
export declare const MemoryREST: import("
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
5
|
+
export declare const MemoryRateLimit: import("@effect-http/client/_common").Layer<import("./Log.js").Log, never, import("./RateLimit.js").RateLimitStore | import("./RateLimit.js").RateLimiter>;
|
|
6
|
+
export declare const MemoryREST: import("@effect-http/client/_common").Layer<import("./DiscordConfig.js").DiscordConfig | import("@effect-http/client/Request/Executor").HttpRequestExecutor | import("./Log.js").Log, never, import("./DiscordREST.js").DiscordREST>;
|
|
7
|
+
export declare const makeLiveWithoutFetch: (options: ConfigWrap.Wrap<DiscordConfig.MakeOpts & MakeConfigOpts>, debug?: boolean) => import("@effect-http/client/_common").Layer<import("@effect-http/client/Request/Executor").HttpRequestExecutor, import("./_common.js").ConfigError, import("./DiscordREST.js").DiscordREST | import("./RateLimit.js").RateLimitStore | import("./RateLimit.js").RateLimiter | import("./Interactions/webhook.js").WebhookConfig>;
|
|
8
|
+
export declare const makeLive: (config: ConfigWrap.Wrap<DiscordConfig.MakeOpts & MakeConfigOpts>, debug?: boolean) => import("@effect-http/client/_common").Layer<never, import("./_common.js").ConfigError, import("./DiscordREST.js").DiscordREST | import("./RateLimit.js").RateLimitStore | import("./RateLimit.js").RateLimiter | import("./Interactions/webhook.js").WebhookConfig>;
|
package/webhooks.js
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Layer";
|
|
2
|
-
import * as tsplus_module_2 from "dfx";
|
|
3
|
-
import * as tsplus_module_3 from "dfx
|
|
2
|
+
import * as tsplus_module_2 from "dfx/_common";
|
|
3
|
+
import * as tsplus_module_3 from "dfx";
|
|
4
|
+
import { LiveFetchRequestExecutor } from "@effect-http/client";
|
|
4
5
|
import { LiveDiscordREST } from "./DiscordREST.js";
|
|
5
|
-
import {
|
|
6
|
+
import { makeFromConfig } from "./Interactions/webhook.js";
|
|
6
7
|
import { LiveMemoryRateLimitStore, LiveRateLimiter } from "./RateLimit.js";
|
|
7
8
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "./Interactions/webhook.js";
|
|
8
9
|
export const MemoryRateLimit = tsplus_module_1.provideMerge(LiveRateLimiter)(LiveMemoryRateLimitStore);
|
|
9
10
|
export const MemoryREST = tsplus_module_1.provide(LiveDiscordREST)(MemoryRateLimit);
|
|
10
|
-
export const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
11
|
+
export const makeLiveWithoutFetch = (options, debug = false) => {
|
|
12
|
+
const config = tsplus_module_2.ConfigWrap.unwrap(options);
|
|
13
|
+
const LiveWebhook = makeFromConfig(config);
|
|
14
|
+
const LiveLog = debug ? tsplus_module_3.Log.LiveLogDebug : tsplus_module_3.Log.LiveLog;
|
|
15
|
+
const LiveConfig = tsplus_module_3.DiscordConfig.makeFromConfig(config);
|
|
14
16
|
const LiveEnv = tsplus_module_1.provide((tsplus_module_1.merge(MemoryRateLimit)(tsplus_module_1.merge(LiveWebhook)(MemoryREST))))((tsplus_module_1.merge(LiveConfig)(LiveLog)));
|
|
15
17
|
return LiveEnv;
|
|
16
18
|
};
|
|
17
|
-
export const
|
|
18
|
-
|
|
19
|
-
const LiveWebhook = makeConfigFromConfig(config);
|
|
20
|
-
const LiveLog = debug ? tsplus_module_2.Log.LiveLogDebug : tsplus_module_2.Log.LiveLog;
|
|
21
|
-
const LiveConfig = tsplus_module_2.DiscordConfig.makeFromConfig(config);
|
|
22
|
-
const LiveEnv = tsplus_module_1.provide((tsplus_module_1.merge(MemoryRateLimit)(tsplus_module_1.merge(LiveWebhook)(MemoryREST))))((tsplus_module_1.merge(LiveConfig)(LiveLog)));
|
|
23
|
-
return LiveEnv;
|
|
19
|
+
export const makeLive = (config, debug = false) => {
|
|
20
|
+
return tsplus_module_1.provide(makeLiveWithoutFetch(config, debug))(LiveFetchRequestExecutor);
|
|
24
21
|
};
|
|
25
22
|
//# sourceMappingURL=webhooks.js.map
|
package/webhooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,
|
|
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;AAE1E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,gCAA8B,eAAe,EAA1C,wBAAwB,CAAkB,CAAA;AAEzE,MAAM,CAAC,MAAM,UAAU,2BAAsB,eAAe,EAAlC,eAAe,CAAmB,CAAA;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAiE,EACjE,KAAK,GAAG,KAAK,EACb,EAAE;IACF,MAAM,MAAM,GAAG,gBAAA,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEzC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAC1C,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,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,MAAgE,EAChE,KAAK,GAAG,KAAK,EACb,EAAE;IACF,+BAAmC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAA/D,wBAAwB,EAAuC;AACxE,CAAC,CAAA"}
|