dfx 0.127.0 → 1.0.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/Cache/memory.d.ts +1 -1
- package/Cache/memory.d.ts.map +1 -1
- package/Cache/memory.js +4 -4
- package/Cache/memory.js.map +1 -1
- package/Cache/memoryTTL.d.ts +1 -1
- package/Cache/memoryTTL.d.ts.map +1 -1
- package/Cache/memoryTTL.js +6 -6
- package/Cache/memoryTTL.js.map +1 -1
- package/Cache/prelude.d.ts +6 -6
- package/Cache/prelude.d.ts.map +1 -1
- package/Cache/prelude.js +4 -4
- package/Cache/prelude.js.map +1 -1
- package/Cache.d.ts +9 -10
- package/Cache.d.ts.map +1 -1
- package/Cache.js +20 -19
- package/Cache.js.map +1 -1
- package/DiscordConfig.d.ts +8 -8
- package/DiscordConfig.d.ts.map +1 -1
- package/DiscordConfig.js +8 -7
- package/DiscordConfig.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +12 -12
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +30 -17
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Messaging.d.ts +204 -10
- package/DiscordGateway/Messaging.d.ts.map +1 -1
- package/DiscordGateway/Messaging.js +10 -7
- package/DiscordGateway/Messaging.js.map +1 -1
- package/DiscordGateway/Shard/StateStore.d.ts +4 -4
- package/DiscordGateway/Shard/StateStore.d.ts.map +1 -1
- package/DiscordGateway/Shard/StateStore.js +7 -6
- package/DiscordGateway/Shard/StateStore.js.map +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts +5 -5
- package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
- package/DiscordGateway/Shard/heartbeats.js +15 -10
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard/identify.d.ts +2 -2
- package/DiscordGateway/Shard/identify.d.ts.map +1 -1
- package/DiscordGateway/Shard/identify.js +2 -2
- package/DiscordGateway/Shard/identify.js.map +1 -1
- package/DiscordGateway/Shard/sendEvents.d.ts +1 -1
- package/DiscordGateway/Shard/sendEvents.d.ts.map +1 -1
- package/DiscordGateway/Shard/sendEvents.js +1 -1
- package/DiscordGateway/Shard/sendEvents.js.map +1 -1
- package/DiscordGateway/Shard/utils.d.ts +1 -1
- package/DiscordGateway/Shard/utils.d.ts.map +1 -1
- package/DiscordGateway/Shard.d.ts +16 -15
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +27 -21
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/ShardStore.d.ts +4 -3
- package/DiscordGateway/ShardStore.d.ts.map +1 -1
- package/DiscordGateway/ShardStore.js +3 -2
- package/DiscordGateway/ShardStore.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +9 -8
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +19 -17
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway.d.ts +13 -12
- package/DiscordGateway.d.ts.map +1 -1
- package/DiscordGateway.js +4 -4
- package/DiscordGateway.js.map +1 -1
- package/DiscordREST/Generated.d.ts +402 -240
- package/DiscordREST/Generated.d.ts.map +1 -1
- package/DiscordREST/Generated.js +193 -126
- package/DiscordREST/Generated.js.map +1 -1
- package/DiscordREST/utils.d.ts +1 -1
- package/DiscordREST/utils.d.ts.map +1 -1
- package/DiscordREST/utils.js +4 -3
- package/DiscordREST/utils.js.map +1 -1
- package/DiscordREST.d.ts +10 -11
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +23 -27
- package/DiscordREST.js.map +1 -1
- package/Helpers/flags.d.ts.map +1 -1
- package/Helpers/flags.js +10 -1
- package/Helpers/flags.js.map +1 -1
- package/Helpers/intents.d.ts.map +1 -1
- package/Helpers/intents.js +2 -2
- package/Helpers/intents.js.map +1 -1
- package/Helpers/interactions.d.ts +2 -2
- package/Helpers/interactions.d.ts.map +1 -1
- package/Helpers/interactions.js +12 -12
- package/Helpers/interactions.js.map +1 -1
- package/Helpers/members.d.ts +2 -2
- package/Helpers/members.d.ts.map +1 -1
- package/Helpers/members.js +1 -1
- package/Helpers/members.js.map +1 -1
- package/Helpers/permissions.d.ts +1 -1
- package/Helpers/permissions.d.ts.map +1 -1
- package/Helpers/permissions.js +4 -4
- package/Helpers/permissions.js.map +1 -1
- package/Helpers/ui.d.ts +9 -9
- package/Helpers/ui.d.ts.map +1 -1
- package/Helpers/ui.js +15 -15
- package/Helpers/ui.js.map +1 -1
- package/Interactions/builder.d.ts +6 -6
- package/Interactions/builder.d.ts.map +1 -1
- package/Interactions/builder.js +7 -7
- package/Interactions/builder.js.map +1 -1
- package/Interactions/commandHelper.d.ts +3 -19
- package/Interactions/commandHelper.d.ts.map +1 -1
- package/Interactions/commandHelper.js +11 -7
- package/Interactions/commandHelper.js.map +1 -1
- package/Interactions/context.d.ts +30 -31
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +23 -18
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +7 -8
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/gateway.d.ts +11 -12
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +22 -20
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +3 -3
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/handlers.js +5 -4
- package/Interactions/handlers.js.map +1 -1
- package/Interactions/index.d.ts +5 -4
- package/Interactions/index.d.ts.map +1 -1
- package/Interactions/index.js +4 -4
- package/Interactions/index.js.map +1 -1
- package/Interactions/utils.d.ts +4 -4
- package/Interactions/utils.d.ts.map +1 -1
- package/Interactions/utils.js +1 -1
- package/Interactions/utils.js.map +1 -1
- package/Interactions/webhook.d.ts +9 -11
- package/Interactions/webhook.d.ts.map +1 -1
- package/Interactions/webhook.js +16 -16
- package/Interactions/webhook.js.map +1 -1
- package/RateLimit/memory.d.ts +1 -1
- package/RateLimit/memory.d.ts.map +1 -1
- package/RateLimit/memory.js +2 -2
- package/RateLimit/memory.js.map +1 -1
- package/RateLimit.d.ts +7 -7
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +7 -5
- package/RateLimit.js.map +1 -1
- package/gateway.d.ts +14 -14
- package/gateway.d.ts.map +1 -1
- package/gateway.js +10 -10
- package/gateway.js.map +1 -1
- package/index.d.ts +14 -14
- package/index.d.ts.map +1 -1
- package/index.js +12 -12
- package/index.js.map +1 -1
- package/mjs/Cache/memory.mjs +4 -4
- package/mjs/Cache/memory.mjs.map +1 -1
- package/mjs/Cache/memoryTTL.mjs +6 -6
- package/mjs/Cache/memoryTTL.mjs.map +1 -1
- package/mjs/Cache/prelude.mjs +4 -4
- package/mjs/Cache/prelude.mjs.map +1 -1
- package/mjs/Cache.mjs +20 -19
- package/mjs/Cache.mjs.map +1 -1
- package/mjs/DiscordConfig.mjs +7 -7
- package/mjs/DiscordConfig.mjs.map +1 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +28 -17
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
- package/mjs/DiscordGateway/Messaging.mjs +9 -7
- package/mjs/DiscordGateway/Messaging.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/StateStore.mjs +7 -6
- package/mjs/DiscordGateway/Shard/StateStore.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/heartbeats.mjs +15 -10
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/identify.mjs +2 -2
- package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/sendEvents.mjs +1 -1
- package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard.mjs +26 -21
- 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 +18 -17
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/DiscordGateway.mjs +4 -4
- package/mjs/DiscordGateway.mjs.map +1 -1
- package/mjs/DiscordREST/Generated.mjs +192 -125
- package/mjs/DiscordREST/Generated.mjs.map +1 -1
- package/mjs/DiscordREST/utils.mjs +4 -3
- package/mjs/DiscordREST/utils.mjs.map +1 -1
- package/mjs/DiscordREST.mjs +22 -27
- package/mjs/DiscordREST.mjs.map +1 -1
- package/mjs/Helpers/flags.mjs +10 -1
- package/mjs/Helpers/flags.mjs.map +1 -1
- package/mjs/Helpers/intents.mjs +2 -2
- package/mjs/Helpers/intents.mjs.map +1 -1
- package/mjs/Helpers/interactions.mjs +12 -12
- package/mjs/Helpers/interactions.mjs.map +1 -1
- package/mjs/Helpers/members.mjs +1 -1
- package/mjs/Helpers/members.mjs.map +1 -1
- package/mjs/Helpers/permissions.mjs +4 -4
- package/mjs/Helpers/permissions.mjs.map +1 -1
- package/mjs/Helpers/ui.mjs +15 -15
- package/mjs/Helpers/ui.mjs.map +1 -1
- package/mjs/Interactions/builder.mjs +7 -7
- package/mjs/Interactions/builder.mjs.map +1 -1
- package/mjs/Interactions/commandHelper.mjs +11 -7
- package/mjs/Interactions/commandHelper.mjs.map +1 -1
- package/mjs/Interactions/context.mjs +17 -18
- package/mjs/Interactions/context.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +21 -20
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/Interactions/handlers.mjs +5 -4
- package/mjs/Interactions/handlers.mjs.map +1 -1
- package/mjs/Interactions/index.mjs +4 -4
- package/mjs/Interactions/index.mjs.map +1 -1
- package/mjs/Interactions/utils.mjs +1 -1
- package/mjs/Interactions/utils.mjs.map +1 -1
- package/mjs/Interactions/webhook.mjs +15 -16
- package/mjs/Interactions/webhook.mjs.map +1 -1
- package/mjs/RateLimit/memory.mjs +2 -2
- package/mjs/RateLimit/memory.mjs.map +1 -1
- package/mjs/RateLimit.mjs +5 -5
- package/mjs/RateLimit.mjs.map +1 -1
- package/mjs/gateway.mjs +14 -14
- package/mjs/gateway.mjs.map +1 -1
- package/mjs/index.mjs +14 -14
- package/mjs/index.mjs.map +1 -1
- package/mjs/types.mjs +2 -2
- package/mjs/types.mjs.map +1 -1
- package/mjs/utils/Effect.mjs +34 -8
- package/mjs/utils/Effect.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/mjs/version.mjs.map +1 -1
- package/mjs/webhooks.mjs +3 -3
- package/mjs/webhooks.mjs.map +1 -1
- package/package.json +4 -5
- package/src/Cache/memory.ts +5 -5
- package/src/Cache/memoryTTL.ts +7 -7
- package/src/Cache/prelude.ts +10 -8
- package/src/Cache.ts +31 -35
- package/src/DiscordConfig.ts +13 -17
- package/src/DiscordGateway/DiscordWS.ts +58 -32
- package/src/DiscordGateway/Messaging.ts +13 -15
- package/src/DiscordGateway/Shard/StateStore.ts +30 -25
- package/src/DiscordGateway/Shard/heartbeats.ts +25 -28
- package/src/DiscordGateway/Shard/identify.ts +5 -4
- package/src/DiscordGateway/Shard/sendEvents.ts +1 -1
- package/src/DiscordGateway/Shard/utils.ts +1 -1
- package/src/DiscordGateway/Shard.ts +39 -35
- package/src/DiscordGateway/ShardStore.ts +6 -7
- package/src/DiscordGateway/Sharder.ts +31 -29
- package/src/DiscordGateway.ts +15 -14
- package/src/DiscordREST/Generated.ts +683 -378
- package/src/DiscordREST/utils.ts +6 -3
- package/src/DiscordREST.ts +37 -41
- package/src/Helpers/flags.ts +10 -5
- package/src/Helpers/intents.ts +2 -2
- package/src/Helpers/interactions.ts +16 -14
- package/src/Helpers/members.ts +3 -3
- package/src/Helpers/permissions.ts +5 -5
- package/src/Helpers/ui.ts +16 -16
- package/src/Interactions/builder.ts +10 -10
- package/src/Interactions/commandHelper.ts +18 -29
- package/src/Interactions/context.ts +51 -65
- package/src/Interactions/definitions.ts +3 -3
- package/src/Interactions/gateway.ts +33 -45
- package/src/Interactions/handlers.ts +8 -5
- package/src/Interactions/index.ts +5 -5
- package/src/Interactions/utils.ts +6 -6
- package/src/Interactions/webhook.ts +31 -38
- package/src/RateLimit/memory.ts +3 -3
- package/src/RateLimit.ts +18 -15
- package/src/gateway.ts +21 -21
- package/src/index.ts +17 -17
- package/src/types.ts +18 -16
- package/src/utils/Effect.ts +38 -27
- package/src/version.ts +1 -1
- package/src/webhooks.ts +7 -7
- package/tsconfig.base.json +12 -6
- package/tsconfig.examples.json +0 -1
- package/types.d.ts +4 -3
- package/types.d.ts.map +1 -1
- package/types.js +3 -3
- package/types.js.map +1 -1
- package/utils/Effect.d.ts.map +1 -1
- package/utils/Effect.js +33 -7
- package/utils/Effect.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/webhooks.d.ts +5 -5
- package/webhooks.d.ts.map +1 -1
- package/webhooks.js +3 -3
- package/webhooks.js.map +1 -1
|
@@ -1,22 +1,23 @@
|
|
|
1
|
+
import * as Arr from "effect/Array";
|
|
1
2
|
import * as Chunk from "effect/Chunk";
|
|
2
|
-
import { GenericTag } from "effect/Context";
|
|
3
3
|
import * as Duration from "effect/Duration";
|
|
4
|
-
import { pipe } from "effect/Function";
|
|
5
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import { pipe } from "effect/Function";
|
|
6
6
|
import * as Layer from "effect/Layer";
|
|
7
7
|
import * as Queue from "effect/Queue";
|
|
8
8
|
import * as Ref from "effect/Ref";
|
|
9
|
-
import { DiscordGateway } from "dfx/DiscordGateway";
|
|
10
|
-
import { DiscordREST } from "dfx/DiscordREST";
|
|
11
|
-
import { handlers } from "dfx/Interactions/handlers";
|
|
12
|
-
import { builder, Interaction } from "dfx/Interactions/index";
|
|
13
|
-
import * as EffectUtils from "dfx/utils/Effect";
|
|
14
9
|
import * as Schedule from "effect/Schedule";
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
11
|
+
import { DiscordGateway } from "../DiscordGateway.js";
|
|
12
|
+
import { DiscordREST } from "../DiscordREST.js";
|
|
13
|
+
import { handlers } from "./handlers.js";
|
|
14
|
+
import { builder, Interaction } from "./index.js";
|
|
15
|
+
import * as EffectUtils from "../utils/Effect.js";
|
|
16
|
+
export const interactionsSync = /*#__PURE__*/ServiceMap.Reference("dfx/Interactions/sync", {
|
|
17
|
+
defaultValue: () => true
|
|
18
|
+
});
|
|
19
|
+
export const setInteractionsSync = enabled => Layer.provide(Layer.succeed(interactionsSync, enabled));
|
|
20
|
+
const retryPolicy = /*#__PURE__*/Schedule.exponential("1 seconds").pipe(/*#__PURE__*/Schedule.either(/*#__PURE__*/Schedule.spaced("20 seconds")));
|
|
20
21
|
export const run = postHandler => ix => Effect.gen(function* () {
|
|
21
22
|
const GlobalApplicationCommand = ix.definitions.pipe(Chunk.map(_ => _[0]), Chunk.filter(_ => _._tag === "GlobalApplicationCommand"), Chunk.toReadonlyArray);
|
|
22
23
|
const GuildApplicationCommand = ix.definitions.pipe(Chunk.map(_ => _[0]), Chunk.filter(_ => _._tag === "GuildApplicationCommand"), Chunk.toReadonlyArray);
|
|
@@ -31,7 +32,7 @@ export const run = postHandler => ix => Effect.gen(function* () {
|
|
|
31
32
|
const next = yield* rest.listMyGuilds({
|
|
32
33
|
after: results && Arr.lastNonEmpty(results).id
|
|
33
34
|
});
|
|
34
|
-
if (!Arr.
|
|
35
|
+
if (!Arr.isReadonlyArrayNonEmpty(next)) break;
|
|
35
36
|
results = next;
|
|
36
37
|
yield* Effect.forEach(results, guild => rest.bulkSetGuildApplicationCommands(application.id, guild.id, commands), {
|
|
37
38
|
concurrency: "unbounded",
|
|
@@ -52,23 +53,23 @@ export const run = postHandler => ix => Effect.gen(function* () {
|
|
|
52
53
|
});
|
|
53
54
|
return hasFiles ? rest.withFiles(r.files)(effect) : effect;
|
|
54
55
|
});
|
|
55
|
-
const
|
|
56
|
+
const interactionRun = gateway.handleDispatch("INTERACTION_CREATE", i => Effect.withSpan(Effect.provideService(postHandler(handle[i.type](i)), Interaction, i), "dfx.Interaction", {
|
|
56
57
|
attributes: {
|
|
57
58
|
interactionId: i.id
|
|
58
59
|
},
|
|
59
60
|
captureStackTrace: false
|
|
60
61
|
}));
|
|
61
|
-
const sync = yield*
|
|
62
|
-
return yield* sync ? Effect.forever(Effect.all([
|
|
62
|
+
const sync = yield* interactionsSync;
|
|
63
|
+
return yield* sync ? Effect.forever(Effect.all([interactionRun, globalSync, guildSync], {
|
|
63
64
|
concurrency: "unbounded",
|
|
64
65
|
discard: true
|
|
65
|
-
})) :
|
|
66
|
+
})) : interactionRun;
|
|
66
67
|
});
|
|
67
68
|
const makeRegistry = /*#__PURE__*/Effect.gen(function* () {
|
|
68
69
|
const ref = yield* Ref.make(builder);
|
|
69
70
|
const queue = yield* Queue.sliding(1);
|
|
70
71
|
const register = ix => Effect.flatMap(Ref.updateAndGet(ref, _ => _.concat(ix)), _ => Queue.offer(queue, _));
|
|
71
|
-
yield* EffectUtils.foreverSwitch(Queue.take(queue), ix => pipe(ix, run(Effect.
|
|
72
|
+
yield* EffectUtils.foreverSwitch(Queue.take(queue), ix => pipe(ix, run(Effect.catchCause(_ => Effect.logError("unhandled error", _))), Effect.delay(Duration.seconds(5)))).pipe(Effect.tapCause(_ => Effect.logError("registry error", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
72
73
|
return {
|
|
73
74
|
register
|
|
74
75
|
};
|
|
@@ -76,6 +77,6 @@ const makeRegistry = /*#__PURE__*/Effect.gen(function* () {
|
|
|
76
77
|
package: "dfx",
|
|
77
78
|
service: "InteractionsRegistry"
|
|
78
79
|
}));
|
|
79
|
-
export
|
|
80
|
-
export const InteractionsRegistryLive = /*#__PURE__*/Layer.
|
|
80
|
+
export class InteractionsRegistry extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/InteractionsRegistry") {}
|
|
81
|
+
export const InteractionsRegistryLive = /*#__PURE__*/Layer.effect(InteractionsRegistry, makeRegistry);
|
|
81
82
|
//# sourceMappingURL=gateway.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.mjs","names":["
|
|
1
|
+
{"version":3,"file":"gateway.mjs","names":["Arr","Chunk","Duration","Effect","pipe","Layer","Queue","Ref","Schedule","ServiceMap","DiscordGateway","DiscordREST","handlers","builder","Interaction","EffectUtils","interactionsSync","Reference","defaultValue","setInteractionsSync","enabled","provide","succeed","retryPolicy","exponential","either","spaced","run","postHandler","ix","gen","GlobalApplicationCommand","definitions","map","_","filter","_tag","toReadonlyArray","GuildApplicationCommand","gateway","rest","application","getMyApplication","globalSync","bulkSetApplicationCommands","id","command","runGuildSync","commands","results","undefined","next","listMyGuilds","after","lastNonEmpty","isReadonlyArrayNonEmpty","forEach","guild","bulkSetGuildApplicationCommands","concurrency","discard","handleDispatch","a","guildSync","length","never","handle","i","r","hasFiles","payload","files","effect","createInteractionResponse","token","withFiles","interactionRun","withSpan","provideService","type","attributes","interactionId","captureStackTrace","sync","forever","all","makeRegistry","ref","make","queue","sliding","register","flatMap","updateAndGet","concat","offer","foreverSwitch","take","catchCause","logError","delay","seconds","tapCause","retry","forkScoped","interruptible","annotateLogs","package","service","InteractionsRegistry","Service","InteractionsRegistryLive"],"sources":["../../src/Interactions/gateway.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as IxHelpers from "
|
|
3
|
-
import * as Ctx from "
|
|
4
|
-
import { flattenDefinitions, splitDefinitions } from "
|
|
5
|
-
import * as Discord from "
|
|
2
|
+
import * as IxHelpers from "../Helpers/interactions.js";
|
|
3
|
+
import * as Ctx from "./context.js";
|
|
4
|
+
import { flattenDefinitions, splitDefinitions } from "./utils.js";
|
|
5
|
+
import * as Discord from "../types.js";
|
|
6
6
|
export class DefinitionNotFound {
|
|
7
7
|
interaction;
|
|
8
8
|
_tag = "DefinitionNotFound";
|
|
@@ -30,6 +30,7 @@ export const handlers = (definitions, handleResponse) => {
|
|
|
30
30
|
}
|
|
31
31
|
return Effect.provideService(command.handle(i), Ctx.ApplicationCommand, data);
|
|
32
32
|
},
|
|
33
|
+
[Discord.InteractionTypes.SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY]: i => Effect.fail(new DefinitionNotFound(i)),
|
|
33
34
|
[Discord.InteractionTypes.MODAL_SUBMIT]: i => {
|
|
34
35
|
const data = i.data;
|
|
35
36
|
const match = ModalSubmit.find(_ => _.predicate(data.custom_id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.mjs","names":["Effect","IxHelpers","Ctx","flattenDefinitions","splitDefinitions","Discord","DefinitionNotFound","interaction","_tag","constructor","handlers","definitions","handleResponse","flattened","Autocomplete","Commands","MessageComponent","ModalSubmit","InteractionTypes","PING","_","succeed","type","InteractionCallbackTypes","PONG","APPLICATION_COMMAND","i","data","command","name","undefined","fail","provideService","handle","ApplicationCommand","MODAL_SUBMIT","match","find","predicate","custom_id","ModalSubmitData","MESSAGE_COMPONENT","MessageComponentData","APPLICATION_COMMAND_AUTOCOMPLETE","option","focusedOption","value","pipe","FocusedOptionContext"],"sources":["../../src/Interactions/handlers.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"handlers.mjs","names":["Effect","IxHelpers","Ctx","flattenDefinitions","splitDefinitions","Discord","DefinitionNotFound","interaction","_tag","constructor","handlers","definitions","handleResponse","flattened","Autocomplete","Commands","MessageComponent","ModalSubmit","InteractionTypes","PING","_","succeed","type","InteractionCallbackTypes","PONG","APPLICATION_COMMAND","i","data","command","name","undefined","fail","provideService","handle","ApplicationCommand","SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY","MODAL_SUBMIT","match","find","predicate","custom_id","ModalSubmitData","MESSAGE_COMPONENT","MessageComponentData","APPLICATION_COMMAND_AUTOCOMPLETE","option","focusedOption","value","pipe","FocusedOptionContext"],"sources":["../../src/Interactions/handlers.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,4BAA4B;AACvD,OAAO,KAAKC,GAAG,MAAM,cAAc;AAEnC,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,YAAY;AACjE,OAAO,KAAKC,OAAO,MAAM,aAAa;AAGtC,OAAM,MAAOC,kBAAkB;EAERC,WAAA;EADZC,IAAI,GAAG,oBAAoB;EACpCC,YAAqBF,WAAmC;IAAnC,KAAAA,WAAW,GAAXA,WAAW;EAA2B;;AAS7D,OAAO,MAAMG,QAAQ,GAAGA,CACtBC,WAKC,EACDC,cAG2B,KAIzB;EACF,MAAMC,SAAS,GAAGV,kBAAkB,CAACQ,WAAW,EAAEC,cAAc,CAAC;EAEjE,MAAM;IAAEE,YAAY;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAW,CAAE,GAC7Db,gBAAgB,CAACS,SAAS,CAAC;EAE7B,OAAO;IACL,CAACR,OAAO,CAACa,gBAAgB,CAACC,IAAI,GAAGC,CAAC,IAChCpB,MAAM,CAACqB,OAAO,CAAC;MACbC,IAAI,EAAEjB,OAAO,CAACkB,wBAAwB,CAACC;KACjC,CAAC;IAEX,CAACnB,OAAO,CAACa,gBAAgB,CAACO,mBAAmB,GAAGC,CAAC,IAAG;MAClD,MAAMC,IAAI,GACRD,CAAC,CAACC,IAA6D;MACjE,MAAMC,OAAO,GAAGb,QAAQ,CAACY,IAAI,CAACE,IAAI,CAAC;MACnC,IAAID,OAAO,KAAKE,SAAS,EAAE;QACzB,OAAO9B,MAAM,CAAC+B,IAAI,CAAC,IAAIzB,kBAAkB,CAACoB,CAAC,CAAC,CAAC;MAC/C;MACA,OAAO1B,MAAM,CAACgC,cAAc,CAC1BJ,OAAO,CAACK,MAAM,CAACP,CAAC,CAAC,EACjBxB,GAAG,CAACgC,kBAAkB,EACtBP,IAAI,CAC+B;IACvC,CAAC;IAED,CAACtB,OAAO,CAACa,gBAAgB,CAACiB,qCAAqC,GAAGT,CAAC,IACjE1B,MAAM,CAAC+B,IAAI,CAAC,IAAIzB,kBAAkB,CAACoB,CAAC,CAAC,CAAC;IAExC,CAACrB,OAAO,CAACa,gBAAgB,CAACkB,YAAY,GAAGV,CAAC,IAAG;MAC3C,MAAMC,IAAI,GAAGD,CAAC,CAACC,IAAkC;MACjD,MAAMU,KAAK,GAAGpB,WAAW,CAACqB,IAAI,CAAClB,CAAC,IAAIA,CAAC,CAACmB,SAAS,CAACZ,IAAI,CAACa,SAAS,CAAC,CAAC;MAChE,IAAIH,KAAK,KAAKP,SAAS,EAAE;QACvB,OAAO9B,MAAM,CAAC+B,IAAI,CAAC,IAAIzB,kBAAkB,CAACoB,CAAC,CAAC,CAAC;MAC/C;MACA,OAAO1B,MAAM,CAACgC,cAAc,CAC1BK,KAAK,CAACJ,MAAM,CAACP,CAAC,CAAC,EACfxB,GAAG,CAACuC,eAAe,EACnBd,IAAI,CAC+B;IACvC,CAAC;IAED,CAACtB,OAAO,CAACa,gBAAgB,CAACwB,iBAAiB,GAAGhB,CAAC,IAAG;MAChD,MAAMC,IAAI,GAAGD,CAAC,CAACC,IAAkD;MACjE,MAAMU,KAAK,GAAGrB,gBAAgB,CAACsB,IAAI,CAAClB,CAAC,IAAIA,CAAC,CAACmB,SAAS,CAACZ,IAAI,CAACa,SAAS,CAAC,CAAC;MACrE,IAAIH,KAAK,KAAKP,SAAS,EAAE;QACvB,OAAO9B,MAAM,CAAC+B,IAAI,CAAC,IAAIzB,kBAAkB,CAACoB,CAAC,CAAC,CAAC;MAC/C;MACA,OAAO1B,MAAM,CAACgC,cAAc,CAC1BK,KAAK,CAACJ,MAAM,CAACP,CAAC,CAAC,EACfxB,GAAG,CAACyC,oBAAoB,EACxBhB,IAAI,CAC+B;IACvC,CAAC;IAED,CAACtB,OAAO,CAACa,gBAAgB,CAAC0B,gCAAgC,GAAGlB,CAAC,IAAG;MAC/D,MAAMC,IAAI,GAAGD,CAAC,CAACC,IAAwD;MACvE,MAAMkB,MAAM,GAAG5C,SAAS,CAAC6C,aAAa,CAACnB,IAAW,CAAC;MACnD,IAAIkB,MAAM,CAACrC,IAAI,KAAK,MAAM,EAAE;QAC1B,OAAOR,MAAM,CAAC+B,IAAI,CAAC,IAAIzB,kBAAkB,CAACoB,CAAC,CAAC,CAAC;MAC/C;MACA,MAAMW,KAAK,GAAGvB,YAAY,CAACwB,IAAI,CAAClB,CAAC,IAAIA,CAAC,CAACmB,SAAS,CAACZ,IAAI,EAAEkB,MAAM,CAACE,KAAK,CAAC,CAAC;MACrE,IAAIV,KAAK,KAAKP,SAAS,EAAE;QACvB,OAAO9B,MAAM,CAAC+B,IAAI,CAAC,IAAIzB,kBAAkB,CAACoB,CAAC,CAAC,CAAC;MAC/C;MACA,OAAOW,KAAK,CACTJ,MAAM,CAACP,CAAC,CAAC,CACTsB,IAAI,CACHhD,MAAM,CAACgC,cAAc,CAAC9B,GAAG,CAACgC,kBAAkB,EAAEP,IAAI,CAAC,EACnD3B,MAAM,CAACgC,cAAc,CAAC9B,GAAG,CAAC+C,oBAAoB,EAAEJ,MAAM,CAACE,KAAK,CAAC,CAC1B;IACzC;GACD;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { response } from "
|
|
2
|
-
export * from "
|
|
3
|
-
export * from "
|
|
4
|
-
export { autocomplete, global, guild, messageComponent, modalSubmit } from "
|
|
1
|
+
export { response } from "../Helpers/interactions.js";
|
|
2
|
+
export * from "./builder.js";
|
|
3
|
+
export * from "./context.js";
|
|
4
|
+
export { autocomplete, global, guild, messageComponent, modalSubmit } from "./definitions.js";
|
|
5
5
|
// Filters
|
|
6
6
|
export const id = query => customId => query === customId;
|
|
7
7
|
export const idStartsWith = query => customId => customId.startsWith(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["response","autocomplete","global","guild","messageComponent","modalSubmit","id","query","customId","idStartsWith","startsWith","idRegex","test","option","command","optionName","data","focusedOption","name","optionOnly","_"],"sources":["../../src/Interactions/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["response","autocomplete","global","guild","messageComponent","modalSubmit","id","query","customId","idStartsWith","startsWith","idRegex","test","option","command","optionName","data","focusedOption","name","optionOnly","_"],"sources":["../../src/Interactions/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,4BAA4B;AACrD,cAAc,cAAc;AAC5B,cAAc,cAAc;AAE5B,SACEC,YAAY,EACZC,MAAM,EACNC,KAAK,EACLC,gBAAgB,EAChBC,WAAW,QACN,kBAAkB;AAEzB;AACA,OAAO,MAAMC,EAAE,GAAIC,KAAa,IAAMC,QAAgB,IAAKD,KAAK,KAAKC,QAAQ;AAE7E,OAAO,MAAMC,YAAY,GAAIF,KAAa,IAAMC,QAAgB,IAC9DA,QAAQ,CAACE,UAAU,CAACH,KAAK,CAAC;AAE5B,OAAO,MAAMI,OAAO,GAAIJ,KAAa,IAAMC,QAAgB,IACzDD,KAAK,CAACK,IAAI,CAACJ,QAAQ,CAAC;AAEtB,OAAO,MAAMK,MAAM,GACjBA,CAACC,OAAe,EAAEC,UAAkB,KACpC,CAACC,IAA+B,EAAEC,aAAwC,KACxED,IAAI,CAACE,IAAI,KAAKJ,OAAO,IAAIG,aAAa,CAACC,IAAI,KAAKH,UAAU;AAE9D,OAAO,MAAMI,UAAU,GACpBJ,UAAkB,IACnB,CAACK,CAAU,EAAEH,aAAwC,KACnDA,aAAa,CAACC,IAAI,KAAKH,UAAU","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as Chunk from "effect/Chunk";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Array from "effect/Array";
|
|
4
|
-
import { CommandHelper } from "
|
|
4
|
+
import { CommandHelper } from "./commandHelper.js";
|
|
5
5
|
export const flattenDefinitions = (definitions, handleResponse) => Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
|
|
6
6
|
...definition,
|
|
7
7
|
handle: Effect.isEffect(definition.handle) ? i => Effect.scoped(transform(Effect.flatMap(definition.handle, _ => handleResponse(i, _)))) : i => Effect.scoped(transform(Effect.flatMap(definition.handle(new CommandHelper(i)), _ => handleResponse(i, _))))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":["Chunk","Effect","Array","CommandHelper","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","i","scoped","flatMap","_","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,aAAa,QAAQ,
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":["Chunk","Effect","Array","CommandHelper","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","i","scoped","flatMap","_","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,aAAa,QAAQ,oBAAoB;AAgBlD,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,WAKC,EACDC,cAG2B,KAE3BJ,KAAK,CAACK,GAAG,CAACP,KAAK,CAACQ,eAAe,CAACH,WAAW,CAAC,EAAE,CAAC,CAACI,UAAU,EAAEC,SAAS,CAAC,MAAM;EAC1E,GAAGD,UAAU;EACbE,MAAM,EAAEV,MAAM,CAACW,QAAQ,CAACH,UAAU,CAACE,MAAM,CAAC,GACrCE,CAAyB,IACxBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CACZN,UAAU,CAACE,MAAiE,EAC5EK,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF,CACF,GACFH,CAAyB,IACxBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CAEVN,UAAU,CAACE,MAGZ,CAAC,IAAIR,aAAa,CAACU,CAAC,CAAC,CAAC,EACvBG,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF;CAEV,CAAC,CAAC;AAEL,OAAO,MAAMC,gBAAgB,GAC3BZ,WAA4D,IAC1D;EACF,MAAMa,OAAO,GAAGhB,KAAK,CAACiB,MAAM,CAC1Bd,WAAW,EACX;IACEe,YAAY,EAAE,EAAE;IAChBC,wBAAwB,EAAE,EAAE;IAC5BC,uBAAuB,EAAE,EAAE;IAC3BC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE;GAOX,EACD,CAACC,GAAG,EAAEC,CAAC,KAAI;IACTD,GAAG,CAACC,CAAC,CAACC,IAAI,CAAC,CAACC,IAAI,CAACF,CAAQ,CAAC;IAC1B,IACEA,CAAC,CAACC,IAAI,KAAK,0BAA0B,IACrCD,CAAC,CAACC,IAAI,KAAK,yBAAyB,EACpC;MACAF,GAAG,CAACD,QAAQ,CAACE,CAAC,CAACG,OAAO,CAACC,IAAI,CAAC,GAAGJ,CAAQ;IACzC;IACA,OAAOD,GAAG;EACZ,CAAC,CACF;EAED,OAAOR,OAAO;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import * as Chunk from "effect/Chunk";
|
|
2
|
-
import { GenericTag } from "effect/Context";
|
|
3
2
|
import { identity } from "effect/Function";
|
|
4
3
|
import * as Option from "effect/Option";
|
|
5
4
|
import * as Redacted from "effect/Redacted";
|
|
6
5
|
import * as Effect from "effect/Effect";
|
|
7
6
|
import * as Layer from "effect/Layer";
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
7
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
8
|
+
import { handlers } from "./handlers.js";
|
|
9
|
+
import { Interaction } from "./index.js";
|
|
10
10
|
import * as Verify from "discord-verify";
|
|
11
|
-
import
|
|
12
|
-
import { InteractionsErrorTypeId } from "dfx/Interactions/error";
|
|
11
|
+
import * as Data from "effect/Data";
|
|
13
12
|
export class BadWebhookSignature {
|
|
14
13
|
_tag = "BadWebhookSignature";
|
|
15
14
|
}
|
|
16
|
-
const checkSignature = (publicKey, headers, body, crypto, algorithm) => Option.all({
|
|
17
|
-
signature: Option.
|
|
18
|
-
timestamp: Option.
|
|
19
|
-
}).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(identity, () => new BadWebhookSignature()), Effect.
|
|
15
|
+
const checkSignature = (publicKey, headers, body, crypto, algorithm) => Effect.fromOption(Option.all({
|
|
16
|
+
signature: Option.fromNullishOr(headers["x-signature-ed25519"]),
|
|
17
|
+
timestamp: Option.fromNullishOr(headers["x-signature-timestamp"])
|
|
18
|
+
})).pipe(Effect.flatMap(_ => Effect.promise(() => Verify.verify(body, _.signature, _.timestamp, publicKey, crypto, algorithm))), Effect.filterOrFail(identity, () => new BadWebhookSignature()), Effect.catchCause(() => Effect.fail(new BadWebhookSignature())), Effect.asVoid);
|
|
20
19
|
const makeConfig = ({
|
|
21
20
|
algorithm,
|
|
22
21
|
applicationId,
|
|
@@ -28,20 +27,20 @@ const makeConfig = ({
|
|
|
28
27
|
crypto,
|
|
29
28
|
algorithm: Verify.PlatformAlgorithm[algorithm]
|
|
30
29
|
});
|
|
31
|
-
export
|
|
30
|
+
export class WebhookConfig extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/WebhookConfig") {}
|
|
32
31
|
export const layer = opts => Layer.succeed(WebhookConfig, makeConfig(opts));
|
|
33
|
-
export const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config, makeConfig));
|
|
34
|
-
export class WebhookParseError extends /*#__PURE__*/
|
|
35
|
-
const fromHeadersAndBody = (headers, body) =>
|
|
32
|
+
export const layerConfig = config => Layer.effect(WebhookConfig, Effect.map(config.asEffect(), makeConfig));
|
|
33
|
+
export class WebhookParseError extends /*#__PURE__*/Data.TaggedError("WebhookParseError") {}
|
|
34
|
+
const fromHeadersAndBody = (headers, body) => WebhookConfig.use(({
|
|
36
35
|
algorithm,
|
|
37
36
|
crypto,
|
|
38
37
|
publicKey
|
|
39
|
-
}) => checkSignature(publicKey, headers, body, crypto, algorithm)
|
|
38
|
+
}) => checkSignature(publicKey, headers, body, crypto, algorithm).pipe(Effect.andThen(Effect.try({
|
|
40
39
|
try: () => JSON.parse(body),
|
|
41
40
|
catch: cause => new WebhookParseError({
|
|
42
41
|
cause
|
|
43
42
|
})
|
|
44
|
-
})));
|
|
43
|
+
}))));
|
|
45
44
|
const run = (definitions, handleResponse) => {
|
|
46
45
|
const handler = handlers(definitions, handleResponse);
|
|
47
46
|
return (headers, body) => Effect.flatMap(fromHeadersAndBody(headers, body), interaction => Effect.withSpan(Effect.provideService(handler[interaction.type](interaction), Interaction, interaction), "dfx.Interaction", {
|
|
@@ -61,7 +60,7 @@ export const makeHandler = ix => {
|
|
|
61
60
|
error,
|
|
62
61
|
headers,
|
|
63
62
|
success
|
|
64
|
-
}) => handle(headers, body).pipe(Effect.flatMap(success), Effect.
|
|
63
|
+
}) => handle(headers, body).pipe(Effect.flatMap(success), Effect.catchCause(error));
|
|
65
64
|
};
|
|
66
65
|
/**
|
|
67
66
|
* @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.mjs","names":["Chunk","
|
|
1
|
+
{"version":3,"file":"webhook.mjs","names":["Chunk","identity","Option","Redacted","Effect","Layer","ServiceMap","handlers","Interaction","Verify","Data","BadWebhookSignature","_tag","checkSignature","publicKey","headers","body","crypto","algorithm","fromOption","all","signature","fromNullishOr","timestamp","pipe","flatMap","_","promise","verify","filterOrFail","catchCause","fail","asVoid","makeConfig","applicationId","value","PlatformAlgorithm","WebhookConfig","Service","layer","opts","succeed","layerConfig","config","effect","map","asEffect","WebhookParseError","TaggedError","fromHeadersAndBody","use","andThen","try","JSON","parse","catch","cause","run","definitions","handleResponse","handler","interaction","withSpan","provideService","type","attributes","interactionId","id","captureStackTrace","makeHandler","ix","handle","d","_i","r","error","success","makeSimpleHandler"],"sources":["../../src/Interactions/webhook.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/mjs/RateLimit/memory.mjs
CHANGED
|
@@ -4,8 +4,8 @@ export const make = () => {
|
|
|
4
4
|
const buckets = new Map();
|
|
5
5
|
const routes = new Map();
|
|
6
6
|
const counters = new Map();
|
|
7
|
-
const getCounter = key => Option.filter(Option.
|
|
8
|
-
const getBucketForRoute = route => Effect.sync(() => Option.
|
|
7
|
+
const getCounter = key => Option.filter(Option.fromNullishOr(counters.get(key)), c => c.expires > Date.now());
|
|
8
|
+
const getBucketForRoute = route => Effect.sync(() => Option.fromNullishOr(buckets.get(routes.get(route))));
|
|
9
9
|
return {
|
|
10
10
|
hasBucket: key => Effect.sync(() => buckets.has(key)),
|
|
11
11
|
putBucket: bucket => Effect.sync(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.mjs","names":["Option","Effect","make","buckets","Map","routes","counters","getCounter","key","filter","
|
|
1
|
+
{"version":3,"file":"memory.mjs","names":["Option","Effect","make","buckets","Map","routes","counters","getCounter","key","filter","fromNullishOr","get","c","expires","Date","now","getBucketForRoute","route","sync","hasBucket","has","putBucket","bucket","set","putBucketRoute","removeCounter","delete","incrementCounter","window","limit","perRequest","Math","ceil","counter","getOrElse","count"],"sources":["../../src/RateLimit/memory.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAQvC,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAA4B;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAyB;EAChD,MAAMC,MAAM,GAAG,IAAID,GAAG,EAAkB;EACxC,MAAME,QAAQ,GAAG,IAAIF,GAAG,EAAmB;EAE3C,MAAMG,UAAU,GAAIC,GAAW,IAC7BR,MAAM,CAACS,MAAM,CACXT,MAAM,CAACU,aAAa,CAACJ,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC,CAAC,EACvCI,CAAC,IAAIA,CAAC,CAACC,OAAO,GAAGC,IAAI,CAACC,GAAG,EAAE,CAC5B;EAEH,MAAMC,iBAAiB,GAAIC,KAAa,IACtChB,MAAM,CAACiB,IAAI,CAAC,MAAMlB,MAAM,CAACU,aAAa,CAACP,OAAO,CAACQ,GAAG,CAACN,MAAM,CAACM,GAAG,CAACM,KAAK,CAAE,CAAC,CAAC,CAAC;EAE1E,OAAO;IACLE,SAAS,EAAEX,GAAG,IAAIP,MAAM,CAACiB,IAAI,CAAC,MAAMf,OAAO,CAACiB,GAAG,CAACZ,GAAG,CAAC,CAAC;IAErDa,SAAS,EAAEC,MAAM,IACfrB,MAAM,CAACiB,IAAI,CAAC,MAAK;MACff,OAAO,CAACoB,GAAG,CAACD,MAAM,CAACd,GAAG,EAAEc,MAAM,CAAC;IACjC,CAAC,CAAC;IAEJN,iBAAiB;IAEjBQ,cAAc,EAAEA,CAACP,KAAK,EAAEK,MAAM,KAC5BrB,MAAM,CAACiB,IAAI,CAAC,MAAK;MACfb,MAAM,CAACkB,GAAG,CAACN,KAAK,EAAEK,MAAM,CAAC;IAC3B,CAAC,CAAC;IAEJG,aAAa,EAAEjB,GAAG,IAChBP,MAAM,CAACiB,IAAI,CAAC,MAAK;MACfZ,QAAQ,CAACoB,MAAM,CAAClB,GAAG,CAAC;IACtB,CAAC,CAAC;IAEJmB,gBAAgB,EAAEA,CAACnB,GAAG,EAAEoB,MAAM,EAAEC,KAAK,KACnC5B,MAAM,CAACiB,IAAI,CAAC,MAAK;MACf,MAAMH,GAAG,GAAGD,IAAI,CAACC,GAAG,EAAE;MACtB,MAAMe,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACJ,MAAM,GAAGC,KAAK,CAAC;MAC5C,MAAMI,OAAO,GAAGjC,MAAM,CAACkC,SAAS,CAC9B3B,UAAU,CAACC,GAAG,CAAC,EACf,OAAgB;QACdK,OAAO,EAAEE,GAAG;QACZoB,KAAK,EAAE;OACR,CAAC,CACH;MAED,MAAMA,KAAK,GAAGF,OAAO,CAACE,KAAK,GAAG,CAAC;MAC/B,MAAMtB,OAAO,GAAGoB,OAAO,CAACpB,OAAO,GAAGiB,UAAU;MAC5CxB,QAAQ,CAACiB,GAAG,CAACf,GAAG,EAAE;QAAE,GAAGyB,OAAO;QAAEE,KAAK;QAAEtB;MAAO,CAAE,CAAC;MAEjD,OAAO,CAACsB,KAAK,EAAEtB,OAAO,GAAGE,GAAG,CAAC;IAC/B,CAAC;GACJ;AACH,CAAC","ignoreList":[]}
|
package/mjs/RateLimit.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { GenericTag } from "effect/Context";
|
|
2
1
|
import * as Duration from "effect/Duration";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
4
3
|
import * as Layer from "effect/Layer";
|
|
5
|
-
import * as Memory from "
|
|
6
|
-
import { delayFrom } from "
|
|
7
|
-
|
|
4
|
+
import * as Memory from "./RateLimit/memory.js";
|
|
5
|
+
import { delayFrom } from "./RateLimit/utils.js";
|
|
6
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
7
|
+
export class RateLimitStore extends /*#__PURE__*/ServiceMap.Service()("dfx/RateLimit/RateLimitStore") {}
|
|
8
8
|
export const MemoryRateLimitStoreLive = /*#__PURE__*/Layer.sync(RateLimitStore, Memory.make);
|
|
9
9
|
const makeLimiter = /*#__PURE__*/Effect.gen(function* () {
|
|
10
10
|
const store = yield* RateLimitStore;
|
|
@@ -23,6 +23,6 @@ const makeLimiter = /*#__PURE__*/Effect.gen(function* () {
|
|
|
23
23
|
maybeWait
|
|
24
24
|
};
|
|
25
25
|
});
|
|
26
|
-
export
|
|
26
|
+
export class RateLimiter extends /*#__PURE__*/ServiceMap.Service()("dfx/RateLimit/RateLimiter") {}
|
|
27
27
|
export const RateLimiterLive = /*#__PURE__*/Layer.effect(RateLimiter, makeLimiter);
|
|
28
28
|
//# sourceMappingURL=RateLimit.mjs.map
|
package/mjs/RateLimit.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.mjs","names":["
|
|
1
|
+
{"version":3,"file":"RateLimit.mjs","names":["Duration","Effect","Layer","Memory","delayFrom","ServiceMap","RateLimitStore","Service","MemoryRateLimitStoreLive","sync","make","makeLimiter","gen","store","maybeWait","key","window","limit","multiplier","windowMs","toMillis","incrementCounter","pipe","map","count","ttl","tap","d","annotateLogs","logTrace","service","delay","_","void","sleep","asVoid","RateLimiter","RateLimiterLive","effect"],"sources":["../src/RateLimit.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AA+B/C,OAAM,MAAOC,cAAe,sBAAQD,UAAU,CAACE,OAAO,EAGnD,CAAC,8BAA8B,CAAC;AAEnC,OAAO,MAAMC,wBAAwB,gBAAGN,KAAK,CAACO,IAAI,CAACH,cAAc,EAAEH,MAAM,CAACO,IAAI,CAAC;AAE/E,MAAMC,WAAW,gBAAGV,MAAM,CAACW,GAAG,CAAC,aAAS;EACtC,MAAMC,KAAK,GAAG,OAAOP,cAAc;EAEnC,MAAMQ,SAAS,GAAGA,CAChBC,GAAW,EACXC,MAAyB,EACzBC,KAAa,EACbC,UAAU,GAAG,IAAI,KACf;IACF,MAAMC,QAAQ,GAAGnB,QAAQ,CAACoB,QAAQ,CAACJ,MAAM,CAAC,GAAGE,UAAU;IAEvD,OAAOL,KAAK,CAACQ,gBAAgB,CAACN,GAAG,EAAEI,QAAQ,EAAEF,KAAK,CAAC,CAACK,IAAI,CACtDrB,MAAM,CAACsB,GAAG,CAAC,CAAC,CAACC,KAAK,EAAEC,GAAG,CAAC,KAAKrB,SAAS,CAACe,QAAQ,EAAEF,KAAK,EAAEO,KAAK,EAAEC,GAAG,CAAC,CAAC,EACpExB,MAAM,CAACyB,GAAG,CAACC,CAAC,IACV1B,MAAM,CAAC2B,YAAY,CAAC3B,MAAM,CAAC4B,QAAQ,CAAC,WAAW,CAAC,EAAE;MAChDC,OAAO,EAAE,WAAW;MACpBf,GAAG;MACHC,MAAM,EAAEhB,QAAQ,CAACoB,QAAQ,CAACJ,MAAM,CAAC;MACjCG,QAAQ;MACRF,KAAK;MACLc,KAAK,EAAE/B,QAAQ,CAACoB,QAAQ,CAACO,CAAC;KAC3B,CAAC,CACH,EACD1B,MAAM,CAACyB,GAAG,CAACM,CAAC,IACVhC,QAAQ,CAACoB,QAAQ,CAACY,CAAC,CAAC,KAAK,CAAC,GAAG/B,MAAM,CAACgC,IAAI,GAAGhC,MAAM,CAACiC,KAAK,CAACF,CAAC,CAAC,CAC3D,EACD/B,MAAM,CAACkC,MAAM,CACd;EACH,CAAC;EAED,OAAO;IAAErB;EAAS,CAAE;AACtB,CAAC,CAAC;AAEF,OAAM,MAAOsB,WAAY,sBAAQ/B,UAAU,CAACE,OAAO,EAUhD,CAAC,2BAA2B,CAAC;AAEhC,OAAO,MAAM8B,eAAe,gBAAGnC,KAAK,CAACoC,MAAM,CAACF,WAAW,EAAEzB,WAAW,CAAC","ignoreList":[]}
|
package/mjs/gateway.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import * as CachePrelude from "
|
|
2
|
-
import { DiscordGatewayLive } from "
|
|
3
|
-
import * as DiscordWS from "
|
|
4
|
-
import { JsonDiscordWSCodecLive } from "
|
|
5
|
-
import * as Shard from "
|
|
6
|
-
import { ShardStateStore } from "
|
|
7
|
-
import * as SendEvent from "
|
|
8
|
-
import * as ShardStore from "
|
|
9
|
-
import { MemoryShardStoreLive } from "
|
|
10
|
-
import { DiscordRESTLive } from "
|
|
11
|
-
import { InteractionsRegistryLive } from "
|
|
12
|
-
import { MemoryRateLimitStoreLive, RateLimiterLive } from "
|
|
1
|
+
import * as CachePrelude from "./Cache/prelude.js";
|
|
2
|
+
import { DiscordGatewayLive } from "./DiscordGateway.js";
|
|
3
|
+
import * as DiscordWS from "./DiscordGateway/DiscordWS.js";
|
|
4
|
+
import { JsonDiscordWSCodecLive } from "./DiscordGateway/DiscordWS.js";
|
|
5
|
+
import * as Shard from "./DiscordGateway/Shard.js";
|
|
6
|
+
import { ShardStateStore } from "./DiscordGateway/Shard/StateStore.js";
|
|
7
|
+
import * as SendEvent from "./DiscordGateway/Shard/sendEvents.js";
|
|
8
|
+
import * as ShardStore from "./DiscordGateway/ShardStore.js";
|
|
9
|
+
import { MemoryShardStoreLive } from "./DiscordGateway/ShardStore.js";
|
|
10
|
+
import { DiscordRESTLive } from "./DiscordREST.js";
|
|
11
|
+
import { InteractionsRegistryLive } from "./Interactions/gateway.js";
|
|
12
|
+
import { MemoryRateLimitStoreLive, RateLimiterLive } from "./RateLimit.js";
|
|
13
13
|
import * as Layer from "effect/Layer";
|
|
14
|
-
export { DiscordGateway, DiscordGatewayLive } from "
|
|
15
|
-
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "
|
|
14
|
+
export { DiscordGateway, DiscordGatewayLive } from "./DiscordGateway.js";
|
|
15
|
+
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "./Interactions/gateway.js";
|
|
16
16
|
export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
|
|
17
17
|
export const DiscordLive = /*#__PURE__*/Layer.mergeAll(RateLimiterLive, DiscordGatewayLive).pipe(/*#__PURE__*/Layer.provideMerge(DiscordRESTLive), /*#__PURE__*/Layer.provide(JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStoreLive), /*#__PURE__*/Layer.provide(ShardStateStore.MemoryLive));
|
|
18
18
|
export const DiscordIxLive = /*#__PURE__*/InteractionsRegistryLive.pipe(/*#__PURE__*/Layer.provideMerge(DiscordLive));
|
package/mjs/gateway.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","ShardStateStore","SendEvent","ShardStore","MemoryShardStoreLive","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","MemoryLive","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","ShardStateStore","SendEvent","ShardStore","MemoryShardStoreLive","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","MemoryLive","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,oBAAoB;AAElD,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAC1D,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,OAAO,KAAKC,KAAK,MAAM,2BAA2B;AAClD,SAASC,eAAe,QAAQ,sCAAsC;AACtE,OAAO,KAAKC,SAAS,MAAM,sCAAsC;AACjE,OAAO,KAAKC,UAAU,MAAM,gCAAgC;AAC5D,SAASC,oBAAoB,QAAQ,gCAAgC;AAErE,SAASC,eAAe,QAAQ,kBAAkB;AAElD,SAASC,wBAAwB,QAAQ,2BAA2B;AAEpE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,gBAAgB;AAC1E,OAAO,KAAKC,KAAK,MAAM,cAAc;AAKrC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,qBAAqB;AAExE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,2BAA2B;AAElC,SAASnB,YAAY,EAAEE,SAAS,EAAEI,SAAS,EAAEF,KAAK,EAAEG,UAAU;AAE9D,OAAO,MAAMa,WAAW,gBAIpBP,KAAK,CAACQ,QAAQ,CAACT,eAAe,EAAEX,kBAAkB,CAAC,CAACqB,IAAI,cAC1DT,KAAK,CAACU,YAAY,CAACd,eAAe,CAAC,eACnCI,KAAK,CAACW,OAAO,CAACrB,sBAAsB,CAAC,eACrCU,KAAK,CAACW,OAAO,CAACb,wBAAwB,CAAC,eACvCE,KAAK,CAACW,OAAO,CAAChB,oBAAoB,CAAC,eACnCK,KAAK,CAACW,OAAO,CAACnB,eAAe,CAACoB,UAAU,CAAC,CAC1C;AAED,OAAO,MAAMC,aAAa,gBAItBhB,wBAAwB,CAACY,IAAI,cAACT,KAAK,CAACU,YAAY,CAACH,WAAW,CAAC,CAAC","ignoreList":[]}
|
package/mjs/index.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import * as Cache from "
|
|
2
|
-
import * as DiscordConfig from "
|
|
3
|
-
import { DiscordRESTLive } from "
|
|
4
|
-
import * as Flags from "
|
|
5
|
-
import * as Intents from "
|
|
6
|
-
import * as IxHelpers from "
|
|
7
|
-
import * as Members from "
|
|
8
|
-
import * as Perms from "
|
|
9
|
-
import * as UI from "
|
|
10
|
-
import * as Ix from "
|
|
11
|
-
import { MemoryRateLimitStoreLive } from "
|
|
12
|
-
import * as Discord from "
|
|
1
|
+
import * as Cache from "./Cache.js";
|
|
2
|
+
import * as DiscordConfig from "./DiscordConfig.js";
|
|
3
|
+
import { DiscordRESTLive } from "./DiscordREST.js";
|
|
4
|
+
import * as Flags from "./Helpers/flags.js";
|
|
5
|
+
import * as Intents from "./Helpers/intents.js";
|
|
6
|
+
import * as IxHelpers from "./Helpers/interactions.js";
|
|
7
|
+
import * as Members from "./Helpers/members.js";
|
|
8
|
+
import * as Perms from "./Helpers/permissions.js";
|
|
9
|
+
import * as UI from "./Helpers/ui.js";
|
|
10
|
+
import * as Ix from "./Interactions/index.js";
|
|
11
|
+
import { MemoryRateLimitStoreLive } from "./RateLimit.js";
|
|
12
|
+
import * as Discord from "./types.js";
|
|
13
13
|
import * as Layer from "effect/Layer";
|
|
14
|
-
export { DiscordREST, DiscordRESTLive } from "
|
|
15
|
-
export { MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive } from "
|
|
14
|
+
export { DiscordREST, DiscordRESTLive } from "./DiscordREST.js";
|
|
15
|
+
export { MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive } from "./RateLimit.js";
|
|
16
16
|
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI };
|
|
17
17
|
export const DiscordRESTMemoryLive = /*#__PURE__*/DiscordRESTLive.pipe(/*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive));
|
|
18
18
|
//# sourceMappingURL=index.mjs.map
|
package/mjs/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["Cache","DiscordConfig","DiscordRESTLive","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","MemoryRateLimitStoreLive","Discord","Layer","DiscordREST","RateLimitStore","RateLimiter","RateLimiterLive","DiscordRESTMemoryLive","pipe","provide"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["Cache","DiscordConfig","DiscordRESTLive","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","MemoryRateLimitStoreLive","Discord","Layer","DiscordREST","RateLimitStore","RateLimiter","RateLimiterLive","DiscordRESTMemoryLive","pipe","provide"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,YAAY;AACnC,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAO,KAAKC,KAAK,MAAM,oBAAoB;AAC3C,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,SAAS,MAAM,2BAA2B;AACtD,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,OAAO,KAAKC,EAAE,MAAM,iBAAiB;AACrC,OAAO,KAAKC,EAAE,MAAM,yBAAyB;AAC7C,SAASC,wBAAwB,QAAQ,gBAAgB;AACzD,OAAO,KAAKC,OAAO,MAAM,YAAY;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,WAAW,EAAEX,eAAe,QAAQ,kBAAkB;AAE/D,SAEEQ,wBAAwB,EACxBI,cAAc,EACdC,WAAW,EACXC,eAAe,QACV,gBAAgB;AAEvB,SACEhB,KAAK,EACLW,OAAO,EACPV,aAAa,EACbE,KAAK,EACLC,OAAO,EACPK,EAAE,EACFJ,SAAS,EACTC,OAAO,EACPC,KAAK,EACLC,EAAE;AAGJ,OAAO,MAAMS,qBAAqB,gBAI9Bf,eAAe,CAACgB,IAAI,cAACN,KAAK,CAACO,OAAO,CAACT,wBAAwB,CAAC,CAAC","ignoreList":[]}
|
package/mjs/types.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "
|
|
2
|
-
export { PermissionFlagsBits as Permissions, EmbedType
|
|
1
|
+
export * from "./DiscordREST/Generated.js";
|
|
2
|
+
export { MessageFlags, PermissionFlagsBits as Permissions, EmbedType } from "discord-api-types/v10";
|
|
3
3
|
export var SubscriptionStatus;
|
|
4
4
|
(function (SubscriptionStatus) {
|
|
5
5
|
/**
|
package/mjs/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":["PermissionFlagsBits","Permissions","EmbedType","
|
|
1
|
+
{"version":3,"file":"types.mjs","names":["MessageFlags","PermissionFlagsBits","Permissions","EmbedType","SubscriptionStatus","GatewayOpcodes","GatewayCloseCodes","GatewayIntentBits","Guilds","GuildMembers","GuildModeration","GuildExpressions","GuildIntegrations","GuildWebhooks","GuildInvites","GuildVoiceStates","GuildPresences","GuildMessages","GuildMessageReactions","GuildMessageTyping","DirectMessages","DirectMessageReactions","DirectMessageTyping","MessageContent","GuildScheduledEvents","AutoModerationConfiguration","AutoModerationExecution","GuildMessagePolls","DirectMessagePolls","GatewayDispatchEvents","VoiceChannelEffectSendAnimationType","PresenceUpdateStatus","ActivityPlatform","ActivityType","ActivityFlags"],"sources":["../src/types.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/mjs/utils/Effect.mjs
CHANGED
|
@@ -1,18 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { constant, constTrue } from "effect/Function";
|
|
2
2
|
import * as Deferred from "effect/Deferred";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Fiber from "effect/Fiber";
|
|
5
5
|
import * as PubSub from "effect/PubSub";
|
|
6
|
-
import * as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
import * as Scope from "effect/Scope";
|
|
7
|
+
import * as Exit from "effect/Exit";
|
|
8
|
+
export const subscribeForEachPar = (self, effect) => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
|
|
9
|
+
const deferred = yield* Deferred.make();
|
|
10
|
+
const sub = yield* PubSub.subscribe(self).pipe(Scope.provide(scope));
|
|
11
|
+
const services = yield* Effect.services();
|
|
12
|
+
const runFork = Effect.runForkWith(services);
|
|
13
|
+
const track = Fiber.runIn(scope);
|
|
14
|
+
function onExit(exit) {
|
|
15
|
+
if (Exit.isFailure(exit)) {
|
|
16
|
+
Deferred.doneUnsafe(deferred, exit);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
yield* Effect.whileLoop({
|
|
20
|
+
while: constTrue,
|
|
21
|
+
body: constant(PubSub.takeAll(sub)),
|
|
22
|
+
step(items) {
|
|
23
|
+
for (let i = 0; i < items.length; i++) {
|
|
24
|
+
const item = items[i];
|
|
25
|
+
track(runFork(effect(item))).addObserver(onExit);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}).pipe(Effect.raceFirst(Deferred.await(deferred)));
|
|
29
|
+
return yield* Effect.never;
|
|
30
|
+
}));
|
|
11
31
|
export const foreverSwitch = (self, f) => Effect.gen(function* () {
|
|
12
32
|
const deferred = yield* Deferred.make();
|
|
13
33
|
let fiber;
|
|
14
|
-
return yield* self.pipe(Effect.tap(() =>
|
|
34
|
+
return yield* self.pipe(Effect.tap(() => {
|
|
35
|
+
fiber?.interruptUnsafe();
|
|
36
|
+
return Effect.void;
|
|
37
|
+
}), Effect.flatMap(a => f(a).pipe(Effect.catchCause(cause => Deferred.failCause(deferred, cause)), Effect.forkChild, Effect.tap(fiber_ => {
|
|
15
38
|
fiber = fiber_;
|
|
16
|
-
|
|
39
|
+
return Effect.void;
|
|
40
|
+
}))), Effect.forever({
|
|
41
|
+
disableYield: true
|
|
42
|
+
}), Effect.raceFirst(Deferred.await(deferred)), Effect.onExit(() => fiber ? Fiber.interrupt(fiber) : Effect.void));
|
|
17
43
|
});
|
|
18
44
|
//# sourceMappingURL=Effect.mjs.map
|