dfx 0.85.0 → 0.87.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/driver.d.ts +15 -15
- package/Cache/driver.d.ts.map +1 -1
- package/Cache/memory.d.ts +2 -2
- package/Cache/memory.d.ts.map +1 -1
- package/Cache/memory.js.map +1 -1
- package/Cache/memoryTTL.d.ts +2 -2
- package/Cache/memoryTTL.js.map +1 -1
- package/Cache/prelude.d.ts +13 -16
- package/Cache/prelude.d.ts.map +1 -1
- package/Cache/prelude.js.map +1 -1
- package/Cache.d.ts +25 -25
- package/Cache.d.ts.map +1 -1
- package/Cache.js.map +1 -1
- package/DiscordConfig.d.ts +3 -4
- package/DiscordConfig.d.ts.map +1 -1
- package/DiscordConfig.js +1 -1
- package/DiscordConfig.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +10 -11
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +2 -2
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Messaging.d.ts +12 -13
- package/DiscordGateway/Messaging.d.ts.map +1 -1
- package/DiscordGateway/Messaging.js +1 -1
- package/DiscordGateway/Messaging.js.map +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard/identify.d.ts +1 -1
- package/DiscordGateway/Shard/identify.d.ts.map +1 -1
- package/DiscordGateway/Shard/identify.js.map +1 -1
- package/DiscordGateway/Shard/invalidSession.d.ts +1 -1
- package/DiscordGateway/Shard/invalidSession.d.ts.map +1 -1
- package/DiscordGateway/Shard/utils.d.ts +2 -2
- package/DiscordGateway/Shard/utils.d.ts.map +1 -1
- package/DiscordGateway/Shard/utils.js.map +1 -1
- package/DiscordGateway/Shard.d.ts +10 -11
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +1 -1
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/ShardStore.d.ts +5 -6
- package/DiscordGateway/ShardStore.d.ts.map +1 -1
- package/DiscordGateway/ShardStore.js +1 -1
- package/DiscordGateway/ShardStore.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +3 -4
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +1 -1
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway/WS.d.ts +7 -8
- package/DiscordGateway/WS.d.ts.map +1 -1
- package/DiscordGateway/WS.js +1 -1
- package/DiscordGateway/WS.js.map +1 -1
- package/DiscordGateway.d.ts +8 -9
- package/DiscordGateway.d.ts.map +1 -1
- package/DiscordGateway.js +1 -1
- package/DiscordGateway.js.map +1 -1
- package/DiscordREST/types.d.ts +2 -2
- package/DiscordREST/types.d.ts.map +1 -1
- package/DiscordREST.d.ts +3 -4
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +1 -1
- package/DiscordREST.js.map +1 -1
- package/Helpers/permissions.d.ts +3 -3
- package/Helpers/permissions.d.ts.map +1 -1
- package/Interactions/builder.d.ts +12 -12
- package/Interactions/builder.d.ts.map +1 -1
- package/Interactions/context.d.ts +22 -23
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +6 -6
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +23 -25
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/gateway.d.ts +5 -6
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +1 -1
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +2 -2
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/handlers.js.map +1 -1
- package/Interactions/index.d.ts +5 -5
- package/Interactions/utils.d.ts +26 -26
- package/Interactions/utils.js.map +1 -1
- package/Interactions/webhook.d.ts +7 -8
- package/Interactions/webhook.d.ts.map +1 -1
- package/Interactions/webhook.js +1 -1
- package/Interactions/webhook.js.map +1 -1
- package/RateLimit.d.ts +11 -12
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +2 -2
- package/RateLimit.js.map +1 -1
- package/gateway.d.ts +2 -2
- package/mjs/Cache/memory.mjs.map +1 -1
- package/mjs/Cache/memoryTTL.mjs.map +1 -1
- package/mjs/Cache/prelude.mjs.map +1 -1
- package/mjs/Cache.mjs.map +1 -1
- package/mjs/DiscordConfig.mjs +2 -2
- package/mjs/DiscordConfig.mjs.map +1 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +3 -3
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
- package/mjs/DiscordGateway/Messaging.mjs +2 -2
- package/mjs/DiscordGateway/Messaging.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard.mjs +2 -2
- package/mjs/DiscordGateway/Shard.mjs.map +1 -1
- package/mjs/DiscordGateway/ShardStore.mjs +2 -2
- package/mjs/DiscordGateway/ShardStore.mjs.map +1 -1
- package/mjs/DiscordGateway/Sharder.mjs +2 -2
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/DiscordGateway/WS.mjs +2 -2
- package/mjs/DiscordGateway/WS.mjs.map +1 -1
- package/mjs/DiscordGateway.mjs +2 -2
- package/mjs/DiscordGateway.mjs.map +1 -1
- package/mjs/DiscordREST.mjs +2 -2
- package/mjs/DiscordREST.mjs.map +1 -1
- package/mjs/Interactions/context.mjs +7 -7
- package/mjs/Interactions/context.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +2 -2
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/Interactions/handlers.mjs.map +1 -1
- package/mjs/Interactions/utils.mjs.map +1 -1
- package/mjs/Interactions/webhook.mjs +2 -2
- package/mjs/Interactions/webhook.mjs.map +1 -1
- package/mjs/RateLimit.mjs +3 -3
- package/mjs/RateLimit.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/package.json +4 -4
- package/src/Cache/driver.ts +15 -15
- package/src/Cache/memory.ts +2 -10
- package/src/Cache/memoryTTL.ts +4 -4
- package/src/Cache/prelude.ts +25 -24
- package/src/Cache.ts +31 -31
- package/src/DiscordConfig.ts +4 -4
- package/src/DiscordGateway/DiscordWS.ts +5 -5
- package/src/DiscordGateway/Messaging.ts +9 -8
- package/src/DiscordGateway/Shard/heartbeats.ts +2 -2
- package/src/DiscordGateway/Shard/identify.ts +2 -6
- package/src/DiscordGateway/Shard/invalidSession.ts +1 -1
- package/src/DiscordGateway/Shard/utils.ts +7 -11
- package/src/DiscordGateway/Shard.ts +2 -2
- package/src/DiscordGateway/ShardStore.ts +5 -5
- package/src/DiscordGateway/Sharder.ts +7 -4
- package/src/DiscordGateway/WS.ts +8 -8
- package/src/DiscordGateway.ts +8 -12
- package/src/DiscordREST/types.ts +2 -6
- package/src/DiscordREST.ts +5 -9
- package/src/Helpers/permissions.ts +1 -1
- package/src/Interactions/builder.ts +11 -11
- package/src/Interactions/context.ts +28 -32
- package/src/Interactions/definitions.ts +34 -38
- package/src/Interactions/gateway.ts +6 -14
- package/src/Interactions/handlers.ts +3 -7
- package/src/Interactions/utils.ts +6 -6
- package/src/Interactions/webhook.ts +15 -19
- package/src/RateLimit.ts +9 -9
- package/src/utils/Effect.ts +9 -9
- package/src/version.ts +1 -1
- package/utils/Effect.d.ts +2 -2
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/webhooks.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Chunk from "effect/Chunk"
|
|
2
|
-
import {
|
|
2
|
+
import { GenericTag } from "effect/Context"
|
|
3
3
|
import { identity } from "effect/Function"
|
|
4
4
|
import * as Option from "effect/Option"
|
|
5
5
|
import type * as Cause from "effect/Cause"
|
|
@@ -74,7 +74,7 @@ const makeConfig = ({
|
|
|
74
74
|
export interface WebhookConfig {
|
|
75
75
|
readonly _: unique symbol
|
|
76
76
|
}
|
|
77
|
-
export const WebhookConfig =
|
|
77
|
+
export const WebhookConfig = GenericTag<WebhookConfig, ReturnType<typeof makeConfig>>(
|
|
78
78
|
"dfx/Interactions/WebhookConfig",
|
|
79
79
|
)
|
|
80
80
|
|
|
@@ -83,7 +83,7 @@ export const layer = (opts: MakeConfigOpts) =>
|
|
|
83
83
|
|
|
84
84
|
export const layerConfig: (
|
|
85
85
|
config: Config.Config<MakeConfigOpts>,
|
|
86
|
-
) => Layer.Layer<
|
|
86
|
+
) => Layer.Layer<WebhookConfig, ConfigError.ConfigError> = (
|
|
87
87
|
config: Config.Config<MakeConfigOpts>,
|
|
88
88
|
) => Layer.effect(WebhookConfig, Effect.map(config, makeConfig))
|
|
89
89
|
|
|
@@ -109,38 +109,34 @@ const run = <R, E>(
|
|
|
109
109
|
readonly [
|
|
110
110
|
handler: D.InteractionDefinition<R, E>,
|
|
111
111
|
transform: (
|
|
112
|
-
self: Effect.Effect<
|
|
113
|
-
) => Effect.Effect<
|
|
112
|
+
self: Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
113
|
+
) => Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
114
114
|
]
|
|
115
115
|
>,
|
|
116
116
|
handleResponse: (
|
|
117
117
|
ix: Discord.Interaction,
|
|
118
118
|
_: Discord.InteractionResponse,
|
|
119
|
-
) => Effect.Effect<
|
|
119
|
+
) => Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
120
120
|
) => {
|
|
121
121
|
const handler = handlers(definitions, handleResponse)
|
|
122
122
|
return (
|
|
123
123
|
headers: Headers,
|
|
124
124
|
body: string,
|
|
125
|
-
): Effect.Effect<
|
|
126
|
-
WebhookConfig | Exclude<R, DiscordInteraction>,
|
|
127
|
-
BadWebhookSignature | WebhookParseError | E | DefinitionNotFound,
|
|
128
|
-
Discord.InteractionResponse
|
|
129
|
-
> =>
|
|
125
|
+
): Effect.Effect<Discord.InteractionResponse, BadWebhookSignature | WebhookParseError | E | DefinitionNotFound, WebhookConfig | Exclude<R, DiscordInteraction>> =>
|
|
130
126
|
Effect.flatMap(fromHeadersAndBody(headers, body), interaction =>
|
|
131
127
|
Effect.provideService(
|
|
132
128
|
handler[interaction.type](interaction),
|
|
133
129
|
Interaction,
|
|
134
130
|
interaction,
|
|
135
131
|
),
|
|
136
|
-
)
|
|
132
|
+
);
|
|
137
133
|
}
|
|
138
134
|
|
|
139
135
|
export interface HandleWebhookOpts<E> {
|
|
140
136
|
headers: Headers
|
|
141
137
|
body: string
|
|
142
|
-
success: (a: Discord.InteractionResponse) => Effect.Effect<
|
|
143
|
-
error: (e: Cause.Cause<E>) => Effect.Effect<
|
|
138
|
+
success: (a: Discord.InteractionResponse) => Effect.Effect<void>
|
|
139
|
+
error: (e: Cause.Cause<E>) => Effect.Effect<void>
|
|
144
140
|
}
|
|
145
141
|
|
|
146
142
|
/**
|
|
@@ -155,7 +151,7 @@ export const makeHandler = <R, E, TE>(
|
|
|
155
151
|
success,
|
|
156
152
|
}: HandleWebhookOpts<
|
|
157
153
|
E | WebhookParseError | BadWebhookSignature | DefinitionNotFound
|
|
158
|
-
>) => Effect.Effect<
|
|
154
|
+
>) => Effect.Effect<void, never, WebhookConfig>) => {
|
|
159
155
|
const handle = run(
|
|
160
156
|
Chunk.map(ix.definitions, ([d]) => [d, identity] as any),
|
|
161
157
|
(_i, r) => Effect.succeed(r),
|
|
@@ -168,11 +164,11 @@ export const makeHandler = <R, E, TE>(
|
|
|
168
164
|
success,
|
|
169
165
|
}: HandleWebhookOpts<
|
|
170
166
|
E | WebhookParseError | BadWebhookSignature | DefinitionNotFound
|
|
171
|
-
>): Effect.Effect<
|
|
167
|
+
>): Effect.Effect<void, never, WebhookConfig> =>
|
|
172
168
|
handle(headers, body).pipe(
|
|
173
169
|
Effect.flatMap(success),
|
|
174
170
|
Effect.catchAllCause(error),
|
|
175
|
-
)
|
|
171
|
+
);
|
|
176
172
|
}
|
|
177
173
|
|
|
178
174
|
/**
|
|
@@ -187,9 +183,9 @@ export const makeSimpleHandler = <R, E, TE>(
|
|
|
187
183
|
headers: Headers
|
|
188
184
|
body: string
|
|
189
185
|
}) => Effect.Effect<
|
|
190
|
-
|
|
186
|
+
Discord.InteractionResponse,
|
|
191
187
|
BadWebhookSignature | WebhookParseError | DefinitionNotFound,
|
|
192
|
-
|
|
188
|
+
WebhookConfig
|
|
193
189
|
>) => {
|
|
194
190
|
const handle = run(
|
|
195
191
|
Chunk.map(ix.definitions, ([d]) => [d, identity] as any),
|
package/src/RateLimit.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GenericTag } from "effect/Context"
|
|
2
2
|
import * as Duration from "effect/Duration"
|
|
3
3
|
import type * as Option from "effect/Option"
|
|
4
4
|
import * as Effect from "effect/Effect"
|
|
@@ -15,35 +15,35 @@ export type BucketDetails = {
|
|
|
15
15
|
export interface RateLimitStoreService {
|
|
16
16
|
readonly hasBucket: (
|
|
17
17
|
bucketKey: string,
|
|
18
|
-
) => Effect.Effect<
|
|
18
|
+
) => Effect.Effect<boolean>
|
|
19
19
|
|
|
20
20
|
readonly putBucket: (
|
|
21
21
|
bucket: BucketDetails,
|
|
22
|
-
) => Effect.Effect<
|
|
22
|
+
) => Effect.Effect<void>
|
|
23
23
|
|
|
24
24
|
readonly getBucketForRoute: (
|
|
25
25
|
route: string,
|
|
26
|
-
) => Effect.Effect<
|
|
26
|
+
) => Effect.Effect<Option.Option<BucketDetails>>
|
|
27
27
|
|
|
28
28
|
readonly putBucketRoute: (
|
|
29
29
|
route: string,
|
|
30
30
|
bucketKey: string,
|
|
31
|
-
) => Effect.Effect<
|
|
31
|
+
) => Effect.Effect<void>
|
|
32
32
|
|
|
33
33
|
readonly incrementCounter: (
|
|
34
34
|
key: string,
|
|
35
35
|
window: number,
|
|
36
36
|
limit: number,
|
|
37
|
-
) => Effect.Effect<
|
|
37
|
+
) => Effect.Effect<readonly [count: number, ttl: number]>
|
|
38
38
|
|
|
39
|
-
readonly removeCounter: (key: string) => Effect.Effect<
|
|
39
|
+
readonly removeCounter: (key: string) => Effect.Effect<void>
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export interface RateLimitStore {
|
|
43
43
|
readonly _: unique symbol
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
export const RateLimitStore =
|
|
46
|
+
export const RateLimitStore = GenericTag<RateLimitStore, RateLimitStoreService>(
|
|
47
47
|
"dfx/RateLimit/RateLimitStore",
|
|
48
48
|
)
|
|
49
49
|
export const MemoryRateLimitStoreLive = Layer.sync(RateLimitStore, Memory.make)
|
|
@@ -84,7 +84,7 @@ const makeLimiter = Effect.gen(function* (_) {
|
|
|
84
84
|
export interface RateLimiter {
|
|
85
85
|
readonly _: unique symbol
|
|
86
86
|
}
|
|
87
|
-
export const RateLimiter =
|
|
87
|
+
export const RateLimiter = GenericTag<
|
|
88
88
|
RateLimiter,
|
|
89
89
|
Effect.Effect.Success<typeof makeLimiter>
|
|
90
90
|
>("dfx/RateLimit/RateLimiter")
|
package/src/utils/Effect.ts
CHANGED
|
@@ -7,9 +7,9 @@ import * as Queue from "effect/Queue"
|
|
|
7
7
|
|
|
8
8
|
export const subscribeForEachPar = <R, E, A, X>(
|
|
9
9
|
self: PubSub.PubSub<A>,
|
|
10
|
-
effect: (_: A) => Effect.Effect<
|
|
11
|
-
): Effect.Effect<
|
|
12
|
-
Effect.flatMap(Deferred.make<
|
|
10
|
+
effect: (_: A) => Effect.Effect<X, E, R>,
|
|
11
|
+
): Effect.Effect<never, E, R> =>
|
|
12
|
+
Effect.flatMap(Deferred.make<never, E>(), deferred => {
|
|
13
13
|
const run = pipe(
|
|
14
14
|
PubSub.subscribe(self),
|
|
15
15
|
Effect.flatMap(queue =>
|
|
@@ -29,15 +29,15 @@ export const subscribeForEachPar = <R, E, A, X>(
|
|
|
29
29
|
return Effect.all([run, Deferred.await(deferred)], {
|
|
30
30
|
concurrency: "unbounded",
|
|
31
31
|
discard: true,
|
|
32
|
-
}) as Effect.Effect<
|
|
32
|
+
}) as Effect.Effect<never, E, R>;
|
|
33
33
|
})
|
|
34
34
|
|
|
35
35
|
export const foreverSwitch = <R, E, A, R1, E1, X>(
|
|
36
|
-
self: Effect.Effect<
|
|
37
|
-
f: (_: A) => Effect.Effect<
|
|
38
|
-
): Effect.Effect<
|
|
36
|
+
self: Effect.Effect<A, E, R>,
|
|
37
|
+
f: (_: A) => Effect.Effect<X, E1, R1>,
|
|
38
|
+
): Effect.Effect<never, E | E1, R | R1> =>
|
|
39
39
|
pipe(
|
|
40
|
-
Effect.all([Deferred.make<
|
|
40
|
+
Effect.all([Deferred.make<never, E1>(), Effect.fiberId]),
|
|
41
41
|
Effect.flatMap(([causeDeferred, fiberId]) => {
|
|
42
42
|
let fiber: Fiber.RuntimeFiber<unknown, unknown> | undefined
|
|
43
43
|
|
|
@@ -64,6 +64,6 @@ export const foreverSwitch = <R, E, A, R1, E1, X>(
|
|
|
64
64
|
return Effect.all([run, Deferred.await(causeDeferred)], {
|
|
65
65
|
concurrency: "unbounded",
|
|
66
66
|
discard: true,
|
|
67
|
-
}) as Effect.Effect<
|
|
67
|
+
}) as Effect.Effect<never, E | E1, R | R1>;
|
|
68
68
|
}),
|
|
69
69
|
)
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.
|
|
1
|
+
export const LIB_VERSION = "0.87.0";
|
package/utils/Effect.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as PubSub from "effect/PubSub";
|
|
3
|
-
export declare const subscribeForEachPar: <R, E, A, X>(self: PubSub.PubSub<A>, effect: (_: A) => Effect.Effect<
|
|
4
|
-
export declare const foreverSwitch: <R, E, A, R1, E1, X>(self: Effect.Effect<
|
|
3
|
+
export declare const subscribeForEachPar: <R, E, A, X>(self: PubSub.PubSub<A>, effect: (_: A) => Effect.Effect<X, E, R>) => Effect.Effect<never, E, R>;
|
|
4
|
+
export declare const foreverSwitch: <R, E, A, R1, E1, X>(self: Effect.Effect<A, E, R>, f: (_: A) => Effect.Effect<X, E1, R1>) => Effect.Effect<never, E | E1, R | R1>;
|
|
5
5
|
//# sourceMappingURL=Effect.d.ts.map
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "0.
|
|
1
|
+
export declare const LIB_VERSION = "0.87.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED
package/webhooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer";
|
|
2
2
|
export { BadWebhookSignature, WebhookConfig, WebhookParseError, makeHandler, makeSimpleHandler, layer as webhookLayer, layerConfig as webhookLayerConfig, } from "dfx/Interactions/webhook";
|
|
3
|
-
export declare const DiscordLive: Layer.Layer<import("
|
|
3
|
+
export declare const DiscordLive: Layer.Layer<import("dfx/RateLimit").RateLimiter | import("dfx/DiscordREST").DiscordREST, never, import("./DiscordConfig").DiscordConfig>;
|
|
4
4
|
//# sourceMappingURL=webhooks.d.ts.map
|