dfx 1.0.5 → 1.0.6
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/dist/version.js +1 -1
- package/package.json +5 -5
- package/src/version.ts +1 -1
- package/dist/Cache/driver.d.ts +0 -24
- package/dist/Cache/driver.d.ts.map +0 -1
- package/dist/Cache/memory.d.ts +0 -5
- package/dist/Cache/memory.d.ts.map +0 -1
- package/dist/Cache/memoryTTL.d.ts +0 -23
- package/dist/Cache/memoryTTL.d.ts.map +0 -1
- package/dist/Cache/prelude.d.ts +0 -32
- package/dist/Cache/prelude.d.ts.map +0 -1
- package/dist/Cache.d.ts +0 -81
- package/dist/Cache.d.ts.map +0 -1
- package/dist/DiscordConfig.d.ts +0 -35
- package/dist/DiscordConfig.d.ts.map +0 -1
- package/dist/DiscordGateway/DiscordWS.d.ts +0 -37
- package/dist/DiscordGateway/DiscordWS.d.ts.map +0 -1
- package/dist/DiscordGateway/Messaging.d.ts +0 -587
- package/dist/DiscordGateway/Messaging.d.ts.map +0 -1
- package/dist/DiscordGateway/Shard/StateStore.d.ts +0 -24
- package/dist/DiscordGateway/Shard/StateStore.d.ts.map +0 -1
- package/dist/DiscordGateway/Shard/heartbeats.d.ts +0 -8
- package/dist/DiscordGateway/Shard/heartbeats.d.ts.map +0 -1
- package/dist/DiscordGateway/Shard/identify.d.ts +0 -12
- package/dist/DiscordGateway/Shard/identify.d.ts.map +0 -1
- package/dist/DiscordGateway/Shard/sendEvents.d.ts +0 -8
- package/dist/DiscordGateway/Shard/sendEvents.d.ts.map +0 -1
- package/dist/DiscordGateway/Shard/utils.d.ts +0 -6
- package/dist/DiscordGateway/Shard/utils.d.ts.map +0 -1
- package/dist/DiscordGateway/Shard.d.ts +0 -29
- package/dist/DiscordGateway/Shard.d.ts.map +0 -1
- package/dist/DiscordGateway/ShardStore.d.ts +0 -19
- package/dist/DiscordGateway/ShardStore.d.ts.map +0 -1
- package/dist/DiscordGateway/Sharder.d.ts +0 -14
- package/dist/DiscordGateway/Sharder.d.ts.map +0 -1
- package/dist/DiscordGateway.d.ts +0 -33
- package/dist/DiscordGateway.d.ts.map +0 -1
- package/dist/DiscordREST/Generated.d.ts +0 -5577
- package/dist/DiscordREST/Generated.d.ts.map +0 -1
- package/dist/DiscordREST/utils.d.ts +0 -14
- package/dist/DiscordREST/utils.d.ts.map +0 -1
- package/dist/DiscordREST.d.ts +0 -22
- package/dist/DiscordREST.d.ts.map +0 -1
- package/dist/Helpers/flags.d.ts +0 -28
- package/dist/Helpers/flags.d.ts.map +0 -1
- package/dist/Helpers/intents.d.ts +0 -25
- package/dist/Helpers/intents.d.ts.map +0 -1
- package/dist/Helpers/interactions.d.ts +0 -116
- package/dist/Helpers/interactions.d.ts.map +0 -1
- package/dist/Helpers/members.d.ts +0 -10
- package/dist/Helpers/members.d.ts.map +0 -1
- package/dist/Helpers/permissions.d.ts +0 -42
- package/dist/Helpers/permissions.d.ts.map +0 -1
- package/dist/Helpers/ui.d.ts +0 -105
- package/dist/Helpers/ui.d.ts.map +0 -1
- package/dist/Interactions/builder.d.ts +0 -48
- package/dist/Interactions/builder.d.ts.map +0 -1
- package/dist/Interactions/commandHelper.d.ts +0 -83
- package/dist/Interactions/commandHelper.d.ts.map +0 -1
- package/dist/Interactions/context.d.ts +0 -53
- package/dist/Interactions/context.d.ts.map +0 -1
- package/dist/Interactions/definitions.d.ts +0 -43
- package/dist/Interactions/definitions.d.ts.map +0 -1
- package/dist/Interactions/error.d.ts +0 -2
- package/dist/Interactions/error.d.ts.map +0 -1
- package/dist/Interactions/gateway.d.ts +0 -20
- package/dist/Interactions/gateway.d.ts.map +0 -1
- package/dist/Interactions/handlers.d.ts +0 -15
- package/dist/Interactions/handlers.d.ts.map +0 -1
- package/dist/Interactions/index.d.ts +0 -17
- package/dist/Interactions/index.d.ts.map +0 -1
- package/dist/Interactions/utils.d.ts +0 -61
- package/dist/Interactions/utils.d.ts.map +0 -1
- package/dist/Interactions/webhook.d.ts +0 -71
- package/dist/Interactions/webhook.d.ts.map +0 -1
- package/dist/LICENSE +0 -21
- package/dist/README.md +0 -66
- package/dist/RateLimit/memory.d.ts +0 -3
- package/dist/RateLimit/memory.d.ts.map +0 -1
- package/dist/RateLimit/utils.d.ts +0 -3
- package/dist/RateLimit/utils.d.ts.map +0 -1
- package/dist/RateLimit.d.ts +0 -30
- package/dist/RateLimit.d.ts.map +0 -1
- package/dist/gateway.d.ts +0 -19
- package/dist/gateway.d.ts.map +0 -1
- package/dist/index.d.ts +0 -18
- package/dist/index.d.ts.map +0 -1
- package/dist/mjs/Cache/driver.mjs +0 -3
- package/dist/mjs/Cache/driver.mjs.map +0 -1
- package/dist/mjs/Cache/memory.mjs +0 -48
- package/dist/mjs/Cache/memory.mjs.map +0 -1
- package/dist/mjs/Cache/memoryTTL.mjs +0 -119
- package/dist/mjs/Cache/memoryTTL.mjs.map +0 -1
- package/dist/mjs/Cache/prelude.mjs +0 -131
- package/dist/mjs/Cache/prelude.mjs.map +0 -1
- package/dist/mjs/Cache.mjs +0 -90
- package/dist/mjs/Cache.mjs.map +0 -1
- package/dist/mjs/DiscordConfig.mjs +0 -32
- package/dist/mjs/DiscordConfig.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/DiscordWS.mjs +0 -77
- package/dist/mjs/DiscordGateway/DiscordWS.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Messaging.mjs +0 -35
- package/dist/mjs/DiscordGateway/Messaging.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Shard/StateStore.mjs +0 -41
- package/dist/mjs/DiscordGateway/Shard/StateStore.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs +0 -25
- package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Shard/identify.mjs +0 -29
- package/dist/mjs/DiscordGateway/Shard/identify.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs +0 -26
- package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Shard/utils.mjs +0 -3
- package/dist/mjs/DiscordGateway/Shard/utils.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Shard.mjs +0 -147
- package/dist/mjs/DiscordGateway/Shard.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/ShardStore.mjs +0 -24
- package/dist/mjs/DiscordGateway/ShardStore.mjs.map +0 -1
- package/dist/mjs/DiscordGateway/Sharder.mjs +0 -67
- package/dist/mjs/DiscordGateway/Sharder.mjs.map +0 -1
- package/dist/mjs/DiscordGateway.mjs +0 -21
- package/dist/mjs/DiscordGateway.mjs.map +0 -1
- package/dist/mjs/DiscordREST/Generated.mjs +0 -2471
- package/dist/mjs/DiscordREST/Generated.mjs.map +0 -1
- package/dist/mjs/DiscordREST/utils.mjs +0 -21
- package/dist/mjs/DiscordREST/utils.mjs.map +0 -1
- package/dist/mjs/DiscordREST.mjs +0 -119
- package/dist/mjs/DiscordREST.mjs.map +0 -1
- package/dist/mjs/Helpers/flags.mjs +0 -45
- package/dist/mjs/Helpers/flags.mjs.map +0 -1
- package/dist/mjs/Helpers/intents.mjs +0 -27
- package/dist/mjs/Helpers/intents.mjs.map +0 -1
- package/dist/mjs/Helpers/interactions.mjs +0 -115
- package/dist/mjs/Helpers/interactions.mjs.map +0 -1
- package/dist/mjs/Helpers/members.mjs +0 -9
- package/dist/mjs/Helpers/members.mjs.map +0 -1
- package/dist/mjs/Helpers/permissions.mjs +0 -84
- package/dist/mjs/Helpers/permissions.mjs.map +0 -1
- package/dist/mjs/Helpers/ui.mjs +0 -137
- package/dist/mjs/Helpers/ui.mjs.map +0 -1
- package/dist/mjs/Interactions/builder.mjs +0 -56
- package/dist/mjs/Interactions/builder.mjs.map +0 -1
- package/dist/mjs/Interactions/commandHelper.mjs +0 -49
- package/dist/mjs/Interactions/commandHelper.mjs.map +0 -1
- package/dist/mjs/Interactions/context.mjs +0 -28
- package/dist/mjs/Interactions/context.mjs.map +0 -1
- package/dist/mjs/Interactions/definitions.mjs +0 -51
- package/dist/mjs/Interactions/definitions.mjs.map +0 -1
- package/dist/mjs/Interactions/error.mjs +0 -2
- package/dist/mjs/Interactions/error.mjs.map +0 -1
- package/dist/mjs/Interactions/gateway.mjs +0 -82
- package/dist/mjs/Interactions/gateway.mjs.map +0 -1
- package/dist/mjs/Interactions/handlers.mjs +0 -64
- package/dist/mjs/Interactions/handlers.mjs.map +0 -1
- package/dist/mjs/Interactions/index.mjs +0 -11
- package/dist/mjs/Interactions/index.mjs.map +0 -1
- package/dist/mjs/Interactions/utils.mjs +0 -26
- package/dist/mjs/Interactions/utils.mjs.map +0 -1
- package/dist/mjs/Interactions/webhook.mjs +0 -75
- package/dist/mjs/Interactions/webhook.mjs.map +0 -1
- package/dist/mjs/RateLimit/memory.mjs +0 -39
- package/dist/mjs/RateLimit/memory.mjs.map +0 -1
- package/dist/mjs/RateLimit/utils.mjs +0 -18
- package/dist/mjs/RateLimit/utils.mjs.map +0 -1
- package/dist/mjs/RateLimit.mjs +0 -28
- package/dist/mjs/RateLimit.mjs.map +0 -1
- package/dist/mjs/gateway.mjs +0 -19
- package/dist/mjs/gateway.mjs.map +0 -1
- package/dist/mjs/index.mjs +0 -18
- package/dist/mjs/index.mjs.map +0 -1
- package/dist/mjs/types.mjs +0 -356
- package/dist/mjs/types.mjs.map +0 -1
- package/dist/mjs/utils/Effect.mjs +0 -44
- package/dist/mjs/utils/Effect.mjs.map +0 -1
- package/dist/mjs/version.mjs +0 -2
- package/dist/mjs/version.mjs.map +0 -1
- package/dist/mjs/webhooks.mjs +0 -6
- package/dist/mjs/webhooks.mjs.map +0 -1
- package/dist/package.json +0 -48
- package/dist/src/Cache/driver.ts +0 -37
- package/dist/src/Cache/memory.ts +0 -83
- package/dist/src/Cache/memoryTTL.ts +0 -225
- package/dist/src/Cache/prelude.ts +0 -279
- package/dist/src/Cache.ts +0 -261
- package/dist/src/DiscordConfig.ts +0 -67
- package/dist/src/DiscordGateway/DiscordWS.ts +0 -157
- package/dist/src/DiscordGateway/Messaging.ts +0 -71
- package/dist/src/DiscordGateway/Shard/StateStore.ts +0 -72
- package/dist/src/DiscordGateway/Shard/heartbeats.ts +0 -60
- package/dist/src/DiscordGateway/Shard/identify.ts +0 -50
- package/dist/src/DiscordGateway/Shard/sendEvents.ts +0 -43
- package/dist/src/DiscordGateway/Shard/utils.ts +0 -13
- package/dist/src/DiscordGateway/Shard.ts +0 -205
- package/dist/src/DiscordGateway/ShardStore.ts +0 -42
- package/dist/src/DiscordGateway/Sharder.ts +0 -118
- package/dist/src/DiscordGateway.ts +0 -79
- package/dist/src/DiscordREST/Generated.ts +0 -10832
- package/dist/src/DiscordREST/utils.ts +0 -42
- package/dist/src/DiscordREST.ts +0 -256
- package/dist/src/Helpers/flags.ts +0 -73
- package/dist/src/Helpers/intents.ts +0 -35
- package/dist/src/Helpers/interactions.ts +0 -317
- package/dist/src/Helpers/members.ts +0 -18
- package/dist/src/Helpers/permissions.ts +0 -145
- package/dist/src/Helpers/ui.ts +0 -253
- package/dist/src/Interactions/builder.ts +0 -171
- package/dist/src/Interactions/commandHelper.ts +0 -231
- package/dist/src/Interactions/context.ts +0 -104
- package/dist/src/Interactions/definitions.ts +0 -144
- package/dist/src/Interactions/error.ts +0 -3
- package/dist/src/Interactions/gateway.ts +0 -193
- package/dist/src/Interactions/handlers.ts +0 -108
- package/dist/src/Interactions/index.ts +0 -30
- package/dist/src/Interactions/utils.ts +0 -93
- package/dist/src/Interactions/webhook.ts +0 -204
- package/dist/src/RateLimit/memory.ts +0 -63
- package/dist/src/RateLimit/utils.ts +0 -28
- package/dist/src/RateLimit.ts +0 -90
- package/dist/src/gateway.ts +0 -50
- package/dist/src/index.ts +0 -44
- package/dist/src/types.ts +0 -3090
- package/dist/src/utils/Effect.ts +0 -65
- package/dist/src/version.ts +0 -1
- package/dist/src/webhooks.ts +0 -25
- package/dist/tsconfig.base.json +0 -54
- package/dist/tsconfig.build.json +0 -10
- package/dist/tsconfig.examples.json +0 -10
- package/dist/tsconfig.json +0 -14
- package/dist/tsconfig.madge.json +0 -12
- package/dist/tsconfig.test.json +0 -10
- package/dist/types.d.ts +0 -2458
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/Effect.d.ts +0 -5
- package/dist/utils/Effect.d.ts.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/webhooks.d.ts +0 -8
- package/dist/webhooks.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/Interactions/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,eAEnC,CAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Layer from "effect/Layer";
|
|
3
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
4
|
-
import { DiscordGateway } from "../DiscordGateway.ts";
|
|
5
|
-
import type { DiscordRESTError } from "../DiscordREST.ts";
|
|
6
|
-
import { DiscordREST } from "../DiscordREST.ts";
|
|
7
|
-
import type { DefinitionNotFound } from "./handlers.ts";
|
|
8
|
-
import type { DiscordInteraction, InteractionBuilder } from "./index.ts";
|
|
9
|
-
export declare const interactionsSync: ServiceMap.Reference<boolean>;
|
|
10
|
-
export declare const setInteractionsSync: (enabled: boolean) => <RIn2, E2, ROut2>(self: Layer.Layer<ROut2, E2, RIn2>) => Layer.Layer<ROut2, E2, Exclude<RIn2, never>>;
|
|
11
|
-
export declare const run: <R, R2, E, TE, E2>(postHandler: (effect: Effect.Effect<void, TE | DiscordRESTError | DefinitionNotFound, R | DiscordREST | DiscordInteraction>) => Effect.Effect<void, E2, R2>) => (ix: InteractionBuilder<R, E, TE>) => Effect.Effect<never, E2 | DiscordRESTError, DiscordREST | DiscordGateway | Exclude<R2, DiscordInteraction>>;
|
|
12
|
-
export interface InteractionsRegistryService {
|
|
13
|
-
readonly register: <E>(ix: InteractionBuilder<never, E, never>) => Effect.Effect<void>;
|
|
14
|
-
}
|
|
15
|
-
declare const InteractionsRegistry_base: ServiceMap.ServiceClass<InteractionsRegistry, "dfx/Interactions/InteractionsRegistry", InteractionsRegistryService>;
|
|
16
|
-
export declare class InteractionsRegistry extends InteractionsRegistry_base {
|
|
17
|
-
}
|
|
18
|
-
export declare const InteractionsRegistryLive: Layer.Layer<InteractionsRegistry, never, DiscordREST | DiscordGateway>;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/Interactions/gateway.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIxE,eAAO,MAAM,gBAAgB,+BAE3B,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,0GACK,CAAA;AAMzD,eAAO,MAAM,GAAG,GACb,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACf,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,IAAI,EACJ,EAAE,GAAG,gBAAgB,GAAG,kBAAkB,EAC1C,CAAC,GAAG,WAAW,GAAG,kBAAkB,CACrC,KACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAGhC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,MAAM,CAAC,MAAM,CACd,KAAK,EACL,EAAE,GAAG,gBAAgB,EACrB,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,CA4F5D,CAAA;AAmCN,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EACnB,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACzB;;AAED,qBAAa,oBAAqB,SAAQ,yBAGE;CAAG;AAE/C,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,oBAAoB,EACpB,KAAK,EACL,WAAW,GAAG,cAAc,CACsB,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type * as Chunk from "effect/Chunk";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Ctx from "./context.ts";
|
|
4
|
-
import type * as D from "./definitions.ts";
|
|
5
|
-
import * as Discord from "../types.ts";
|
|
6
|
-
import type { Scope } from "effect/Scope";
|
|
7
|
-
export declare class DefinitionNotFound {
|
|
8
|
-
readonly interaction: Discord.APIInteraction;
|
|
9
|
-
readonly _tag = "DefinitionNotFound";
|
|
10
|
-
constructor(interaction: Discord.APIInteraction);
|
|
11
|
-
}
|
|
12
|
-
type Handler<R, E, A> = Effect.Effect<A, E | DefinitionNotFound, R | Ctx.DiscordInteraction>;
|
|
13
|
-
export declare const handlers: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => Record<Discord.InteractionTypes, (i: Discord.APIInteraction) => Handler<Exclude<R, Scope>, E, B>>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/Interactions/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAE1C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,qBAAa,kBAAkB;IAEjB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc;IADxD,QAAQ,CAAC,IAAI,wBAAuB;gBACf,WAAW,EAAE,OAAO,CAAC,cAAc;CACzD;AAED,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CACnC,CAAC,EACD,CAAC,GAAG,kBAAkB,EACtB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAC3B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EACrC,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CACP,OAAO,CAAC,gBAAgB,EACxB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA0EhE,CAAA"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export { response } from "../Helpers/interactions.ts";
|
|
2
|
-
export * from "./builder.ts";
|
|
3
|
-
export * from "./context.ts";
|
|
4
|
-
export type { InteractionDefinition } from "./definitions.ts";
|
|
5
|
-
export { autocomplete, global, guild, messageComponent, modalSubmit, } from "./definitions.ts";
|
|
6
|
-
export declare const id: (query: string) => (customId: string) => boolean;
|
|
7
|
-
export declare const idStartsWith: (query: string) => (customId: string) => boolean;
|
|
8
|
-
export declare const idRegex: (query: RegExp) => (customId: string) => boolean;
|
|
9
|
-
export declare const option: (command: string, optionName: string) => (data: {
|
|
10
|
-
readonly name: string;
|
|
11
|
-
}, focusedOption: {
|
|
12
|
-
readonly name: string;
|
|
13
|
-
}) => boolean;
|
|
14
|
-
export declare const optionOnly: (optionName: string) => (_: unknown, focusedOption: {
|
|
15
|
-
readonly name: string;
|
|
16
|
-
}) => boolean;
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/Interactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,YAAY,EACZ,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAGzB,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YAAuB,CAAA;AAE7E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACpC,CAAA;AAE5B,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACrC,CAAA;AAEtB,eAAO,MAAM,MAAM,GAChB,SAAS,MAAM,EAAE,YAAY,MAAM,MACnC,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YACd,CAAA;AAE9D,eAAO,MAAM,UAAU,GACpB,YAAY,MAAM,MAClB,GAAG,OAAO,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YAClB,CAAA"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import * as Chunk from "effect/Chunk";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import type * as D from "./definitions.ts";
|
|
4
|
-
import type * as Discord from "../types.ts";
|
|
5
|
-
export type DefinitionFlattened<R, E, TE, A> = D.InteractionDefinition<R, E> extends infer Def ? {
|
|
6
|
-
[K in keyof Def]: K extends "handle" ? (_: Discord.APIInteraction) => Effect.Effect<A, TE, R> : Def[K];
|
|
7
|
-
} : never;
|
|
8
|
-
export type DefinitionFlattenedCommand<R, E, TE, A> = Extract<DefinitionFlattened<R, E, TE, A>, {
|
|
9
|
-
_tag: "GlobalApplicationCommand" | "GuildApplicationCommand";
|
|
10
|
-
}>;
|
|
11
|
-
export declare const flattenDefinitions: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => ({
|
|
12
|
-
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
13
|
-
_tag: "GlobalApplicationCommand";
|
|
14
|
-
command: Discord.ApplicationCommandCreateRequest;
|
|
15
|
-
} | {
|
|
16
|
-
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
17
|
-
_tag: "GuildApplicationCommand";
|
|
18
|
-
command: Discord.ApplicationCommandCreateRequest;
|
|
19
|
-
} | {
|
|
20
|
-
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
21
|
-
_tag: "MessageComponent";
|
|
22
|
-
predicate: (customId: string) => boolean;
|
|
23
|
-
} | {
|
|
24
|
-
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
25
|
-
_tag: "ModalSubmit";
|
|
26
|
-
predicate: (customId: string) => boolean;
|
|
27
|
-
} | {
|
|
28
|
-
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
29
|
-
_tag: "Autocomplete";
|
|
30
|
-
predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
|
|
31
|
-
})[];
|
|
32
|
-
export declare const splitDefinitions: <R, E, TE, A>(definitions: ReadonlyArray<DefinitionFlattened<R, E, TE, A>>) => {
|
|
33
|
-
GlobalApplicationCommand: {
|
|
34
|
-
readonly _tag: "GlobalApplicationCommand";
|
|
35
|
-
readonly command: Discord.ApplicationCommandCreateRequest;
|
|
36
|
-
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
37
|
-
}[];
|
|
38
|
-
GuildApplicationCommand: {
|
|
39
|
-
readonly _tag: "GuildApplicationCommand";
|
|
40
|
-
readonly command: Discord.ApplicationCommandCreateRequest;
|
|
41
|
-
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
42
|
-
}[];
|
|
43
|
-
MessageComponent: {
|
|
44
|
-
readonly _tag: "MessageComponent";
|
|
45
|
-
readonly predicate: (customId: string) => boolean;
|
|
46
|
-
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
47
|
-
}[];
|
|
48
|
-
ModalSubmit: {
|
|
49
|
-
readonly _tag: "ModalSubmit";
|
|
50
|
-
readonly predicate: (customId: string) => boolean;
|
|
51
|
-
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
52
|
-
}[];
|
|
53
|
-
Autocomplete: {
|
|
54
|
-
readonly _tag: "Autocomplete";
|
|
55
|
-
readonly predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
|
|
56
|
-
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
57
|
-
}[];
|
|
58
|
-
} & {
|
|
59
|
-
readonly Commands: Record<string, DefinitionFlattenedCommand<R, E, TE, A>>;
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/Interactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAI3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAC3C;KACG,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,QAAQ,GAChC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GACtD,GAAG,CAAC,CAAC,CAAC;CACX,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAC3D,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAChC;IAAE,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,CAAA;CAAE,CACjE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC/C,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAKjB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;IAsB7B,CAAA;AAEL,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAC1C,aAAa,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;;;;6BAlD9C,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;uBAkEb,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAe/E,CAAA"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type * as Cause from "effect/Cause";
|
|
2
|
-
import type * as Config from "effect/Config";
|
|
3
|
-
import * as Redacted from "effect/Redacted";
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import * as Layer from "effect/Layer";
|
|
6
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
7
|
-
import type { DefinitionNotFound } from "./handlers.ts";
|
|
8
|
-
import type { InteractionBuilder } from "./index.ts";
|
|
9
|
-
import type * as Discord from "../types.ts";
|
|
10
|
-
import * as Verify from "discord-verify";
|
|
11
|
-
export declare class BadWebhookSignature {
|
|
12
|
-
readonly _tag = "BadWebhookSignature";
|
|
13
|
-
}
|
|
14
|
-
export type Headers = Record<string, string | Array<string> | undefined>;
|
|
15
|
-
export interface MakeConfigOpts {
|
|
16
|
-
readonly applicationId: string;
|
|
17
|
-
readonly publicKey: Redacted.Redacted;
|
|
18
|
-
readonly crypto: SubtleCrypto;
|
|
19
|
-
readonly algorithm: keyof typeof Verify.PlatformAlgorithm;
|
|
20
|
-
}
|
|
21
|
-
declare const WebhookConfig_base: ServiceMap.ServiceClass<WebhookConfig, "dfx/Interactions/WebhookConfig", {
|
|
22
|
-
applicationId: string;
|
|
23
|
-
publicKey: string;
|
|
24
|
-
crypto: SubtleCrypto;
|
|
25
|
-
algorithm: string | {
|
|
26
|
-
name: string;
|
|
27
|
-
namedCurve: string;
|
|
28
|
-
public: boolean;
|
|
29
|
-
} | {
|
|
30
|
-
name: string;
|
|
31
|
-
namedCurve: string;
|
|
32
|
-
public: boolean;
|
|
33
|
-
} | {
|
|
34
|
-
name: string;
|
|
35
|
-
namedCurve: string;
|
|
36
|
-
public: boolean;
|
|
37
|
-
} | {
|
|
38
|
-
name: string;
|
|
39
|
-
namedCurve: string;
|
|
40
|
-
};
|
|
41
|
-
}>;
|
|
42
|
-
export declare class WebhookConfig extends WebhookConfig_base {
|
|
43
|
-
}
|
|
44
|
-
export declare const layer: (opts: MakeConfigOpts) => Layer.Layer<WebhookConfig, never, never>;
|
|
45
|
-
export declare const layerConfig: (config: Config.Config<MakeConfigOpts>) => Layer.Layer<WebhookConfig, Config.ConfigError>;
|
|
46
|
-
declare const WebhookParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").MatchRecord<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }, void, { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
|
47
|
-
readonly _tag: "WebhookParseError";
|
|
48
|
-
} & Readonly<A>;
|
|
49
|
-
export declare class WebhookParseError extends WebhookParseError_base<{
|
|
50
|
-
cause: unknown;
|
|
51
|
-
}> {
|
|
52
|
-
}
|
|
53
|
-
export interface HandleWebhookOpts<E> {
|
|
54
|
-
headers: Headers;
|
|
55
|
-
body: string;
|
|
56
|
-
success: (a: Discord.CreateInteractionResponseRequest) => Effect.Effect<void>;
|
|
57
|
-
error: (e: Cause.Cause<E>) => Effect.Effect<void>;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @tsplus getter dfx/InteractionBuilder webhookHandler
|
|
61
|
-
*/
|
|
62
|
-
export declare const makeHandler: <R, E, TE>(ix: InteractionBuilder<R, E, TE>) => (({ body, error, headers, success, }: HandleWebhookOpts<E | WebhookParseError | BadWebhookSignature | DefinitionNotFound>) => Effect.Effect<void, never, WebhookConfig>);
|
|
63
|
-
/**
|
|
64
|
-
* @tsplus getter dfx/InteractionBuilder simpleWebhookHandler
|
|
65
|
-
*/
|
|
66
|
-
export declare const makeSimpleHandler: <R, E, TE>(ix: InteractionBuilder<R, E, TE>) => (({ body, headers, }: {
|
|
67
|
-
headers: Headers;
|
|
68
|
-
body: string;
|
|
69
|
-
}) => Effect.Effect<Discord.CreateInteractionResponseRequest, BadWebhookSignature | WebhookParseError | DefinitionNotFound, WebhookConfig>);
|
|
70
|
-
export {};
|
|
71
|
-
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/Interactions/webhook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAExE,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAGxC,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,yBAAwB;CACtC;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAA;AAgCxE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,MAAM,CAAC,iBAAiB,CAAA;CAC1D;;;;;;;;;;;;;;;;;;;;;;AAaD,qBAAa,aAAc,SAAQ,kBAGE;CAAG;AAExC,eAAO,MAAM,KAAK,GAAI,MAAM,cAAc,6CACM,CAAA;AAEhD,eAAO,MAAM,WAAW,EAAE,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAClC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAEyB,CAAA;;;;AAE3E,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,KAAK,EAAE,OAAO,CAAA;CACf,CAAC;CAAG;AAqDL,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,gCAAgC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7E,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAClC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,CAAC,CAAC,EACH,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,iBAAiB,CAClB,CAAC,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,CACjE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAkB9C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EACxC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,CAAC,CAAC,EACH,IAAI,EACJ,OAAO,GACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,KAAK,MAAM,CAAC,MAAM,CACjB,OAAO,CAAC,gCAAgC,EACxC,mBAAmB,GAAG,iBAAiB,GAAG,kBAAkB,EAC5D,aAAa,CACd,CAQA,CAAA"}
|
package/dist/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023-present The Contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/dist/README.md
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# dfx
|
|
2
|
-
|
|
3
|
-
[](https://discord.gg/dtR2Mtu66Q)
|
|
4
|
-
|
|
5
|
-
A Discord library built on top of effect
|
|
6
|
-
|
|
7
|
-
- Supports both the gateway and webhooks
|
|
8
|
-
- Simple yet powerful abstractions to build Discord bots
|
|
9
|
-
|
|
10
|
-
## Example
|
|
11
|
-
|
|
12
|
-
```typescript
|
|
13
|
-
import { NodeHttpClient, NodeRuntime, NodeSocket } from "@effect/platform-node"
|
|
14
|
-
import { DiscordConfig, Ix } from "dfx"
|
|
15
|
-
import { DiscordIxLive, InteractionsRegistry } from "dfx/gateway"
|
|
16
|
-
import { Config, Effect, Layer } from "effect"
|
|
17
|
-
|
|
18
|
-
// Create a layer for the discord services
|
|
19
|
-
const DiscordLayer = DiscordIxLive.pipe(
|
|
20
|
-
Layer.provide([
|
|
21
|
-
DiscordConfig.layerConfig({
|
|
22
|
-
token: Config.redacted("DISCORD_BOT_TOKEN"),
|
|
23
|
-
}),
|
|
24
|
-
NodeHttpClient.layerUndici,
|
|
25
|
-
NodeSocket.layerWebSocketConstructor,
|
|
26
|
-
]),
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
// Create hello service
|
|
30
|
-
const HelloLayer = Layer.effectDiscard(
|
|
31
|
-
Effect.gen(function* () {
|
|
32
|
-
const registry = yield* InteractionsRegistry
|
|
33
|
-
|
|
34
|
-
// Create hello command that responds with "Hello!"
|
|
35
|
-
const hello = Ix.global(
|
|
36
|
-
{
|
|
37
|
-
name: "hello",
|
|
38
|
-
description: "A basic command",
|
|
39
|
-
},
|
|
40
|
-
Effect.succeed({
|
|
41
|
-
type: 4,
|
|
42
|
-
data: {
|
|
43
|
-
content: "Hello!",
|
|
44
|
-
},
|
|
45
|
-
}),
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
// register the command(s) and handle errors
|
|
49
|
-
yield* registry.register(
|
|
50
|
-
Ix.builder.add(hello).catchAllCause(Effect.logError),
|
|
51
|
-
)
|
|
52
|
-
}),
|
|
53
|
-
).pipe(
|
|
54
|
-
// provide discord layer
|
|
55
|
-
Layer.provide(DiscordLayer),
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
// Construct the main layer
|
|
59
|
-
const MainLive = Layer.mergeAll(
|
|
60
|
-
// add your other services here
|
|
61
|
-
HelloLayer,
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
// run it
|
|
65
|
-
NodeRuntime.runMain(Layer.launch(MainLive))
|
|
66
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/RateLimit/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAO3E,eAAO,MAAM,IAAI,QAAO,qBAqDvB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/RateLimit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,MAAM,EACb,KAAK,MAAM,KACV,QAmBF,CAAA"}
|
package/dist/RateLimit.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as Duration from "effect/Duration";
|
|
2
|
-
import type * as Option from "effect/Option";
|
|
3
|
-
import * as Effect from "effect/Effect";
|
|
4
|
-
import * as Layer from "effect/Layer";
|
|
5
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
6
|
-
export type BucketDetails = {
|
|
7
|
-
key: "global" | string;
|
|
8
|
-
resetAfter: number;
|
|
9
|
-
limit: number;
|
|
10
|
-
};
|
|
11
|
-
export interface RateLimitStoreService {
|
|
12
|
-
readonly hasBucket: (bucketKey: string) => Effect.Effect<boolean>;
|
|
13
|
-
readonly putBucket: (bucket: BucketDetails) => Effect.Effect<void>;
|
|
14
|
-
readonly getBucketForRoute: (route: string) => Effect.Effect<Option.Option<BucketDetails>>;
|
|
15
|
-
readonly putBucketRoute: (route: string, bucketKey: string) => Effect.Effect<void>;
|
|
16
|
-
readonly incrementCounter: (key: string, window: number, limit: number) => Effect.Effect<readonly [count: number, ttl: number]>;
|
|
17
|
-
readonly removeCounter: (key: string) => Effect.Effect<void>;
|
|
18
|
-
}
|
|
19
|
-
declare const RateLimitStore_base: ServiceMap.ServiceClass<RateLimitStore, "dfx/RateLimit/RateLimitStore", RateLimitStoreService>;
|
|
20
|
-
export declare class RateLimitStore extends RateLimitStore_base {
|
|
21
|
-
}
|
|
22
|
-
export declare const MemoryRateLimitStoreLive: Layer.Layer<RateLimitStore, never, never>;
|
|
23
|
-
declare const RateLimiter_base: ServiceMap.ServiceClass<RateLimiter, "dfx/RateLimit/RateLimiter", {
|
|
24
|
-
maybeWait: (key: string, window: Duration.Duration, limit: number, multiplier?: number) => Effect.Effect<void, never, never>;
|
|
25
|
-
}>;
|
|
26
|
-
export declare class RateLimiter extends RateLimiter_base {
|
|
27
|
-
}
|
|
28
|
-
export declare const RateLimiterLive: Layer.Layer<RateLimiter, never, RateLimitStore>;
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=RateLimit.d.ts.map
|
package/dist/RateLimit.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["./src/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjE,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAElE,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAEhD,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAExB,QAAQ,CAAC,gBAAgB,EAAE,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAEzD,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC7D;;AAED,qBAAa,cAAe,SAAQ,mBAGD;CAAG;AAEtC,eAAO,MAAM,wBAAwB,2CAA0C,CAAA;;eAsChE,CACT,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,CAAC,QAAQ,EACzB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;;AAR1C,qBAAa,WAAY,SAAQ,gBAUD;CAAG;AAEnC,eAAO,MAAM,eAAe,iDAAyC,CAAA"}
|
package/dist/gateway.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as CachePrelude from "./Cache/prelude.ts";
|
|
2
|
-
import type { DiscordGateway } from "./DiscordGateway.ts";
|
|
3
|
-
import * as DiscordWS from "./DiscordGateway/DiscordWS.ts";
|
|
4
|
-
import * as Shard from "./DiscordGateway/Shard.ts";
|
|
5
|
-
import * as SendEvent from "./DiscordGateway/Shard/sendEvents.ts";
|
|
6
|
-
import * as ShardStore from "./DiscordGateway/ShardStore.ts";
|
|
7
|
-
import type { DiscordREST } from "./DiscordREST.ts";
|
|
8
|
-
import type { InteractionsRegistry } from "./Interactions/gateway.ts";
|
|
9
|
-
import type { RateLimiter } from "./RateLimit.ts";
|
|
10
|
-
import * as Layer from "effect/Layer";
|
|
11
|
-
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
12
|
-
import type { DiscordConfig } from "./DiscordConfig.ts";
|
|
13
|
-
import type { WebSocketConstructor } from "effect/unstable/socket/Socket";
|
|
14
|
-
export { DiscordGateway, DiscordGatewayLive } from "./DiscordGateway.ts";
|
|
15
|
-
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync, } from "./Interactions/gateway.ts";
|
|
16
|
-
export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
|
|
17
|
-
export declare const DiscordLive: Layer.Layer<RateLimiter | DiscordGateway | DiscordREST, never, DiscordConfig | WebSocketConstructor | HttpClient.HttpClient>;
|
|
18
|
-
export declare const DiscordIxLive: Layer.Layer<RateLimiter | DiscordGateway | DiscordREST | InteractionsRegistry, never, DiscordConfig | WebSocketConstructor | HttpClient.HttpClient>;
|
|
19
|
-
//# sourceMappingURL=gateway.d.ts.map
|
package/dist/gateway.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["./src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,GAAG,IAAI,KAAK,EACZ,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAEhE,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CACnC,WAAW,GAAG,cAAc,GAAG,WAAW,EAC1C,KAAK,EACL,aAAa,GAAG,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAO7D,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CACrC,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,oBAAoB,EACjE,KAAK,EACL,aAAa,GAAG,oBAAoB,GAAG,UAAU,CAAC,UAAU,CACI,CAAA"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
2
|
-
import * as Cache from "./Cache.ts";
|
|
3
|
-
import * as DiscordConfig from "./DiscordConfig.ts";
|
|
4
|
-
import type { DiscordREST } from "./DiscordREST.ts";
|
|
5
|
-
import * as Flags from "./Helpers/flags.ts";
|
|
6
|
-
import * as Intents from "./Helpers/intents.ts";
|
|
7
|
-
import * as IxHelpers from "./Helpers/interactions.ts";
|
|
8
|
-
import * as Members from "./Helpers/members.ts";
|
|
9
|
-
import * as Perms from "./Helpers/permissions.ts";
|
|
10
|
-
import * as UI from "./Helpers/ui.ts";
|
|
11
|
-
import * as Ix from "./Interactions/index.ts";
|
|
12
|
-
import * as Discord from "./types.ts";
|
|
13
|
-
import * as Layer from "effect/Layer";
|
|
14
|
-
export { DiscordREST, DiscordRESTLive } from "./DiscordREST.ts";
|
|
15
|
-
export { type BucketDetails, MemoryRateLimitStoreLive, RateLimitStore, RateLimiter, RateLimiterLive, } from "./RateLimit.ts";
|
|
16
|
-
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI, };
|
|
17
|
-
export declare const DiscordRESTMemoryLive: Layer.Layer<DiscordREST, never, DiscordConfig.DiscordConfig | HttpClient>;
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAE7C,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EACL,KAAK,aAAa,EAClB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,EAAE,EACF,SAAS,EACT,OAAO,EACP,KAAK,EACL,EAAE,GACH,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAC7C,WAAW,EACX,KAAK,EACL,aAAa,CAAC,aAAa,GAAG,UAAU,CACuB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver.mjs","names":["createParentDriver","driver","createDriver"],"sources":["../../src/Cache/driver.ts"],"sourcesContent":[null],"mappings":"AAwBA,OAAO,MAAMA,kBAAkB,GAAUC,MAA+B,IACtEA,MAAM;AAWR,OAAO,MAAMC,YAAY,GAAUD,MAAyB,IAAKA,MAAM","ignoreList":[]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import * as Option from "effect/Option";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import { createDriver, createParentDriver } from "./driver.js";
|
|
4
|
-
export const createWithParent = () => Effect.sync(() => {
|
|
5
|
-
const map = new Map();
|
|
6
|
-
return createParentDriver({
|
|
7
|
-
size: Effect.sync(() => {
|
|
8
|
-
let count = 0;
|
|
9
|
-
for (const a of map.values()) {
|
|
10
|
-
count += a.size;
|
|
11
|
-
}
|
|
12
|
-
return count;
|
|
13
|
-
}),
|
|
14
|
-
sizeForParent: parentId => Effect.sync(() => map.get(parentId)?.size ?? 0),
|
|
15
|
-
get: (parentId, resourceId) => Effect.sync(() => Option.fromNullishOr(map.get(parentId)?.get(resourceId))),
|
|
16
|
-
getForParent: parentId => Effect.sync(() => Option.fromNullishOr(map.get(parentId))),
|
|
17
|
-
set: (parentId, resourceId, resource) => Effect.sync(() => {
|
|
18
|
-
if (!map.has(parentId)) {
|
|
19
|
-
map.set(parentId, new Map());
|
|
20
|
-
}
|
|
21
|
-
map.get(parentId).set(resourceId, resource);
|
|
22
|
-
}),
|
|
23
|
-
delete: (parentId, resourceId) => Effect.sync(() => {
|
|
24
|
-
map.get(parentId)?.delete(resourceId);
|
|
25
|
-
}),
|
|
26
|
-
parentDelete: parentId => Effect.sync(() => {
|
|
27
|
-
map.delete(parentId);
|
|
28
|
-
}),
|
|
29
|
-
refreshTTL: () => Effect.void,
|
|
30
|
-
run: Effect.never
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
export const create = () => Effect.sync(() => {
|
|
34
|
-
const map = new Map();
|
|
35
|
-
return createDriver({
|
|
36
|
-
size: Effect.sync(() => map.size),
|
|
37
|
-
get: resourceId => Effect.sync(() => Option.fromNullishOr(map.get(resourceId))),
|
|
38
|
-
set: (resourceId, resource) => Effect.sync(() => {
|
|
39
|
-
map.set(resourceId, resource);
|
|
40
|
-
}),
|
|
41
|
-
delete: resourceId => Effect.sync(() => {
|
|
42
|
-
map.delete(resourceId);
|
|
43
|
-
}),
|
|
44
|
-
refreshTTL: () => Effect.void,
|
|
45
|
-
run: Effect.never
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
//# sourceMappingURL=memory.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.mjs","names":["Option","Effect","createDriver","createParentDriver","createWithParent","sync","map","Map","size","count","a","values","sizeForParent","parentId","get","resourceId","fromNullishOr","getForParent","set","resource","has","delete","parentDelete","refreshTTL","void","run","never","create"],"sources":["../../src/Cache/memory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { createDriver, createParentDriver } from "./driver.js";
|
|
2
|
-
import * as Array from "effect/Array";
|
|
3
|
-
import * as Duration from "effect/Duration";
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import * as Option from "effect/Option";
|
|
6
|
-
const make = ({
|
|
7
|
-
resolution = Duration.minutes(1),
|
|
8
|
-
strategy = "usage",
|
|
9
|
-
ttl
|
|
10
|
-
}) => {
|
|
11
|
-
const resolutionMs = Duration.toMillis(resolution);
|
|
12
|
-
const additionalMilliseconds = (Math.floor(Duration.toMillis(ttl) / resolutionMs) + 1) * resolutionMs;
|
|
13
|
-
const items = new Map();
|
|
14
|
-
const buckets = [];
|
|
15
|
-
const refreshTTL = item => {
|
|
16
|
-
const now = Date.now();
|
|
17
|
-
const remainder = now % resolutionMs;
|
|
18
|
-
const expires = now - remainder + additionalMilliseconds;
|
|
19
|
-
let currentBucket = buckets[buckets.length - 1];
|
|
20
|
-
if ((currentBucket?.expires || 0) < expires) {
|
|
21
|
-
currentBucket = {
|
|
22
|
-
expires,
|
|
23
|
-
items: []
|
|
24
|
-
};
|
|
25
|
-
buckets.push(currentBucket);
|
|
26
|
-
}
|
|
27
|
-
currentBucket.items.push(item);
|
|
28
|
-
};
|
|
29
|
-
const sweep = () => {
|
|
30
|
-
const now = Date.now();
|
|
31
|
-
const remainder = now % resolutionMs;
|
|
32
|
-
const currentExpires = now - remainder;
|
|
33
|
-
while (buckets.length && buckets[0].expires <= currentExpires) {
|
|
34
|
-
buckets.shift();
|
|
35
|
-
}
|
|
36
|
-
if (global.gc) {
|
|
37
|
-
global.gc();
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
const getSync = resourceId => {
|
|
41
|
-
const ref = items.get(resourceId);
|
|
42
|
-
if (!ref) return undefined;
|
|
43
|
-
const item = ref.deref();
|
|
44
|
-
if (!item) {
|
|
45
|
-
items.delete(resourceId);
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
if (strategy !== "expiry") {
|
|
49
|
-
refreshTTL(item);
|
|
50
|
-
}
|
|
51
|
-
return item.resource;
|
|
52
|
-
};
|
|
53
|
-
return createDriver({
|
|
54
|
-
size: Effect.sync(() => items.size),
|
|
55
|
-
get: resourceId => Effect.sync(() => Option.fromNullishOr(getSync(resourceId))),
|
|
56
|
-
refreshTTL: id => Effect.sync(() => {
|
|
57
|
-
getSync(id);
|
|
58
|
-
}),
|
|
59
|
-
set: (resourceId, resource) => Effect.sync(() => {
|
|
60
|
-
const item = items.get(resourceId)?.deref();
|
|
61
|
-
if (item && strategy !== "activity") {
|
|
62
|
-
item.resource = resource;
|
|
63
|
-
} else {
|
|
64
|
-
const newItem = {
|
|
65
|
-
resource
|
|
66
|
-
};
|
|
67
|
-
refreshTTL(newItem);
|
|
68
|
-
items.set(resourceId, new WeakRef(newItem));
|
|
69
|
-
}
|
|
70
|
-
}),
|
|
71
|
-
delete: resourceId => Effect.sync(() => {
|
|
72
|
-
items.delete(resourceId);
|
|
73
|
-
}),
|
|
74
|
-
run: Effect.sync(sweep).pipe(Effect.delay(Duration.times(resolution, 0.5)), Effect.forever)
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
export const create = opts => Effect.sync(() => make(opts));
|
|
78
|
-
export const createWithParent = opts => Effect.sync(() => {
|
|
79
|
-
const store = make(opts);
|
|
80
|
-
const parentIds = new Map();
|
|
81
|
-
return createParentDriver({
|
|
82
|
-
size: store.size,
|
|
83
|
-
sizeForParent: parentId => Effect.sync(() => parentIds.get(parentId)?.size ?? 0),
|
|
84
|
-
refreshTTL: (_, id) => store.refreshTTL(id),
|
|
85
|
-
get: (_, id) => store.get(id),
|
|
86
|
-
getForParent: parentId => Effect.fromNullishOr(parentIds.get(parentId)).pipe(Effect.flatMap(ids => Effect.forEach(ids, id => store.get(id).pipe(Effect.tap(item => Effect.sync(() => {
|
|
87
|
-
if (item._tag === "None") {
|
|
88
|
-
ids.delete(id);
|
|
89
|
-
}
|
|
90
|
-
})), Effect.map(item => [id, item])), {
|
|
91
|
-
concurrency: "unbounded"
|
|
92
|
-
})), Effect.map(Array.reduce(new Map(), (acc, [id, item]) => item._tag === "Some" ? acc.set(id, item.value) : acc)), Effect.catchNoSuchElement),
|
|
93
|
-
set: (parentId, resourceId, resource) => Effect.andThen(store.set(resourceId, resource), Effect.sync(() => {
|
|
94
|
-
if (!parentIds.has(parentId)) {
|
|
95
|
-
parentIds.set(parentId, new Set());
|
|
96
|
-
}
|
|
97
|
-
parentIds.get(parentId).add(resourceId);
|
|
98
|
-
})),
|
|
99
|
-
delete: (parentId, resourceId) => Effect.andThen(store.delete(resourceId), Effect.sync(() => {
|
|
100
|
-
parentIds.get(parentId)?.delete(resourceId);
|
|
101
|
-
})),
|
|
102
|
-
parentDelete: parentId => Effect.suspend(() => {
|
|
103
|
-
const ids = parentIds.get(parentId);
|
|
104
|
-
parentIds.delete(parentId);
|
|
105
|
-
const effects = [];
|
|
106
|
-
if (ids) {
|
|
107
|
-
ids.forEach(id => {
|
|
108
|
-
effects.push(store.delete(id));
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
return Effect.all(effects, {
|
|
112
|
-
concurrency: "unbounded",
|
|
113
|
-
discard: true
|
|
114
|
-
});
|
|
115
|
-
}),
|
|
116
|
-
run: store.run
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
//# sourceMappingURL=memoryTTL.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memoryTTL.mjs","names":["createDriver","createParentDriver","Array","Duration","Effect","Option","make","resolution","minutes","strategy","ttl","resolutionMs","toMillis","additionalMilliseconds","Math","floor","items","Map","buckets","refreshTTL","item","now","Date","remainder","expires","currentBucket","length","push","sweep","currentExpires","shift","global","gc","getSync","resourceId","ref","get","undefined","deref","delete","resource","size","sync","fromNullishOr","id","set","newItem","WeakRef","run","pipe","delay","times","forever","create","opts","createWithParent","store","parentIds","sizeForParent","parentId","_","getForParent","flatMap","ids","forEach","tap","_tag","map","concurrency","reduce","acc","value","catchNoSuchElement","andThen","has","Set","add","parentDelete","suspend","effects","all","discard"],"sources":["../../src/Cache/memoryTTL.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|